You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been trying to isolate this for a couple days but can't get through with it. It's an issue with interface (dynamic) casting, but every test I make with in isolated applications runs just fine.
Anyways, trying my luck here with this complicated problem, maybe someone knows something can be improved somewhere.. It happens in my native implementation of vibe.d :
Notice I've upcast manually the TCPConnection line 1214 because otherwise the LibasyncTCPConnection (twice) derived instance has a this instance as a copy of the .vtbl() reference pointer when calling the overriden methods. It makes it impossible to modify the state of the object at any time and it's (I think) the only obstacle preventing it from being compiled completely with LDC. This also causes errors with invariant, so I had to disable core.rt.invariant and compile without it to diagnose the issue.
I can't really do much more with this workaround because I'd have to upcast in every delegate, and TCPConnection is used everywhere. I've been using the latest LDC compiled with GCC 4.8 and using LLVM 3.4
Also, I'm using GC.malloc.
Any ideas?
The text was updated successfully, but these errors were encountered:
I've been trying to isolate this for a couple days but can't get through with it. It's an issue with interface (dynamic) casting, but every test I make with in isolated applications runs just fine.
Anyways, trying my luck here with this complicated problem, maybe someone knows something can be improved somewhere.. It happens in my native implementation of vibe.d :
https://github.com/etcimon/vibe.d/blob/native-events/source/vibe/http/server.d#L1220
Notice I've upcast manually the
TCPConnection
line 1214 because otherwise theLibasyncTCPConnection
(twice) derived instance has athis
instance as a copy of the .vtbl() reference pointer when calling the overriden methods. It makes it impossible to modify the state of the object at any time and it's (I think) the only obstacle preventing it from being compiled completely with LDC. This also causes errors withinvariant
, so I had to disable core.rt.invariant and compile without it to diagnose the issue.I can't really do much more with this workaround because I'd have to upcast in every delegate, and TCPConnection is used everywhere. I've been using the latest LDC compiled with GCC 4.8 and using LLVM 3.4
Also, I'm using GC.malloc.
Any ideas?
The text was updated successfully, but these errors were encountered: