InvalidMemoryOperationError when calling functions from destructors
Vladimir Panteleev
vladimir at thecybershadow.net
Sat Apr 27 07:58:25 PDT 2013
On Saturday, 27 April 2013 at 06:12:03 UTC, Steven Schveighoffer
wrote:
> On Thu, 25 Apr 2013 10:57:13 -0700, Vladimir Panteleev
> <vladimir at thecybershadow.net> wrote:
>
>> On Thursday, 25 April 2013 at 16:17:57 UTC, Jacob Carlborg
>> wrote:
>>> You cannot access GC controlled memory in class destructors.
>>
>> Not true.
>
> Can you be more specific? Maybe the wording was too strong.
> Should say "you shouldn't access GC controlled memory in class
> destructors."
>
> Or are you thinking of some specific case? Because the
> opposite of the above is DEFINITELY not true. I just want to
> make that clear.
Last time I checked, destructors were called separately from
deallocation. Thus, referencing memory will not result in
undefined behavior. The order of destruction is
non-deterministic, but otherwise, it's the same as accessing a
clear()'d object, which is perfectly safe (from a memory safety
perspective).
More information about the Digitalmars-d
mailing list