InvalidMemoryOperationError@(0)
    Steven Schveighoffer via Digitalmars-d-learn 
    digitalmars-d-learn at puremagic.com
       
    Mon Nov 17 14:40:36 PST 2014
    
    
  
On 11/17/14 5:19 PM, Vladimir Panteleev wrote:
> On Monday, 17 November 2014 at 16:40:18 UTC, ketmar via
> Digitalmars-d-learn wrote:
>> On Mon, 17 Nov 2014 15:41:25 +0000
>> Andre via Digitalmars-d-learn <digitalmars-d-learn at puremagic.com> wrote:
>>
>>>     ~this()
>>>     {
>>>         foreach(cp; this._columns)
>>>         {
>>>         }
>>>     }
>> don't do that in destructors. `_columns` field can be already collected
>> by GC.
>
> Last I checked, the GC finalizes all dead objects before freeing them.
The GC is not guaranteed to finalize them all before freeing them all.
I would not count on that property -- even if it's currently true. 
Expect that any GC-allocated memory in your dtor is invalid except for 
the memory of the object itself.
-Steve
    
    
More information about the Digitalmars-d-learn
mailing list