www.digitalmars.com         C & C++   DMDScript  

D - posible bug: new/delete

I tried the example from memory.html:

import c.stdio, c.stdlib, gc, outofmemory;
void main() {
    Foo foo=new Foo;
    //delete foo;
}

class Foo {
    new(uint sz) {
        void* p;
        p = c.stdlib.malloc(sz);
        if (!p)
            throw new OutOfMemory();
        gc.addRange(p, p + sz);
        return p;
    }
    delete(void* p) {
        if (p) {
            gc.removeRange(p);
            c.stdlib.free(p);
        }
        printf("~Foo"); //added this
    }
}

with the stated change. However, It never prints "~Foo". And if I uncomment
"delete foo" I get "Error: Win32 Exception". Now, I've never done anything
with allocators, etc., but I just think this isn't right, is it?

-------------------------
Carlos Santander


---

Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.515 / Virus Database: 313 - Release Date: 2003-09-01
Sep 08 2003