Class deallocator not being called -- bug or oversight?

Regan Heath regan at netmail.co.nz
Mon Sep 24 09:06:00 PDT 2007


Sean Kelly wrote:
> Oh for what it's worth, I can't figure out where Phobos is calling class 
> deallocators--the block I'd expect to be used in internal/gc/gc.d is 
> commented out.  I don't suppose someone could test this with Phobos to 
> see if it works?

Works on Windows with DMD 2.004.

import std.stdio;
import std.c.stdlib;

class A
{
     new(size_t sz)
     {
         writefln("A new.");
         void* p = malloc(sz);
         return p;
     }

     delete(void* p)
     {
         writefln("A delete.");

         if(p is null)
             return;

         free(p);
     }

     this()
     {
         writefln("A ctor.");
     }

     ~this()
     {
         writefln("A dtor.");
     }
}

void main()
{
     A a = new A();
     delete a;
}

Regan


More information about the Digitalmars-d-learn mailing list