Vladimir Panteleev wrote:
I wasn't suggesting any GC modifications, I was just suggesting that void[]'s TypeInfo 
"has pointers" flag be set to false.

The suggestion was that void[] be used as ubyte[] currently is, and then to use void*[] to indicate an array of unknown type that may have pointers.

This works when all pointers are aligned, or when the garbage collector does not optimize in cases where a type is known not to contain unaligned pointers.

Alternatively, you can change the runtime to notify the GC on array copies so it can keep track of type information when you're avoiding the type system. But it's so easy to get around this by accident, it's not a reasonable solution (even if it could be made fast).

Reply via email to