On 08/25/2017 05:49 PM, Nicholas Wilson wrote: > I was thinking of something along those lines: but what about the > lifetime of the passed delegate (the address of a local variable)? How > can I ensure that it won't segfault when callback goes out of scope? > I could new it with the GC but > a) I'd rather have the wrapper be @nogc and > b) i'd have to hold a reference to it or pin it because > SomeAPIaddCallback will be in a driver somewhere and wouldn't get > scanned by the GC.
Good points. I think you have to store a copy of the delegate in MyStruct and pass e.g. the array index of it as userData to intermediateCallback(). I think a Mallocator-based array would make the wrapper nogc.
Ali