Bug in destructors
    Rob Grainger 
    rob_grainger2000 at yahoo.co.uk
       
    Mon Sep 13 11:19:15 PDT 2010
    
    
  
The following example is based on one from The D Programming Language. I'd expect the last assertion in
the unittest to succeed, it fails.
class Buffer {
	private void* data;
	// Constructor
	this () {
		data = malloc(1024);
	}
	// Destructor
	~this() {
		free(data);
		data = null;
	}
}
unittest {
	auto b = new Buffer;
	auto b1 = b;
	clear(b);				// Get rid of b's extra state
	assert (b1.data is null);	// Should be ok, fails
}
    
    
More information about the Digitalmars-d
mailing list