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) {
        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