On 11/6/16 10:57 PM, Era Scarecrow wrote:
On Monday, 7 November 2016 at 02:22:35 UTC, Steven Schveighoffer wrote:
OP: it's not legal to destroy or even access GC allocated members in a
destructor. The GC may have already destroyed that data. I would
recommend printing the stack trace when you get the exception, and
figure out where the culprit is.
Err.... that makes no sense... If that's the case why have a destructor
at all?
To free non-GC resources.
http://dlang.org/spec/class.html#destructors
"Furthermore, the order in which the garbage collector calls destructors
for unreference objects is not specified. This means that when the
garbage collector calls a destructor for an object of a class that has
members that are references to garbage collected objects, those
references may no longer be valid. This means that destructors cannot
reference sub objects."
-Steve