Full closures - Variable needlessly allocated on heap
    Xinok 
    xnknet at gmail.com
       
    Sat Nov  3 05:35:17 PDT 2007
    
    
  
Compiled using DMD 2.007 on Windows.
int delegate() foo(){
	int a = 30;
	int b = 60;
	int c = 90;
	
	int one(){ return a; }
	int two(){ return b; }
	
	writefln(&a);
	writefln(&b);
	writefln(&c);
	
	return &one;
}
version(Windows) void main(){
	foo();
}
Prints:
8B2FF4
8B2FF8
12FF28
This means that variable 'b' is being allocated on the heap, even though nested function 'two' is never referenced.
    
    
More information about the Digitalmars-d-bugs
mailing list