Invariant for default construction

Daniel Murphy via Digitalmars-d digitalmars-d at puremagic.com
Wed Nov 19 00:46:40 PST 2014


"Rainer Schuetze"  wrote in message news:m4eu6v$trq$1 at digitalmars.com...

> I remember having an invariant on a tree structure checking consistency by 
> verifying the children and parent references. This crashed when adding a 
> destructor. With the proposed change it will always crash.
>
> The problem is that the destructors of the tree nodes are called in 
> arbitrary order when they are collected by the GC. Class instances are 
> also made invalid after calling the destructor (the vtbl is zeroed).
>
> I wonder if
>
> - such invariants are invalid,
> - the GC should bypass the invariant when calling the destructor
> - or we should never call the invariant with the destructor?

I think the 'correct' solution is to check the invariants before any of the 
parts are destroyed. 



More information about the Digitalmars-d mailing list