[Issue 1979] New: Anonymous class with confused context pointer
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Apr 8 11:09:51 PDT 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1979
Summary: Anonymous class with confused context pointer
Product: D
Version: 1.028
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: benoit at tionex.de
The following snippet shows an inner anonymous class, that uses the constructor
to copy local values to member var. This is to make a closure behaviour.
When the inner class later tries to access the outer class, a segmentation
fault happens.
The compiler should either given an error or it should work.
void main(){
auto o = new Outer;
o.run(5);
}
interface Intf {
void doIt();
}
class Outer {
int i;
void inc( int v ){
i += v ;
}
void run( int v2 ){
auto i = new class Intf {
int v2_;
this(){
v2_ = v2;
}
void doIt(){
inc( v2_ ); // (1) segmentation fault
}
};
i.doIt();
}
}
--
More information about the Digitalmars-d-bugs
mailing list