Hi I introduced an boolean-option to the destructor of a class. I implemented a wrapper without argument for reason of backward-compability.
This wrapper calls the real destructor with default argument. Everything worked fine until fpc 2.4 (sample programm below) When running it compiled with fpc 2.4 i get an Runtime error 216 (segmentation fault). I could reproduce the problem with the latest svn head. Without further examination i suggest: The outer destructor tries to free the memory the inner destructor already released. So my question: Is it a bug or am i doing something i should not? The compiler gives me am note: test.pas(8,3) Note: Class should have one destructor only -- Best regards, Martin ------------ program cascading_destructor; type test=class constructor create(); destructor destroy();overload; destructor destroy(arg:boolean);overload; end; constructor test.create(); begin end; destructor test.destroy(); begin writeln('calling master destroy'); destroy(true); writeln('master destroy done'); end; destructor test.destroy(arg:boolean); begin writeln('destroyed'); end; var a:test; begin a:=test.create(); a.destroy; end. type test=class constructor create(); destructor destroy();overload; destructor destroy(arg:boolean);overload; end; constructor test.create(); begin end; destructor test.destroy(); begin writeln('calling master destroy'); destroy(true); writeln('master destroy done'); end; destructor test.destroy(arg:boolean); begin writeln('destroyed'); end; var a:test; begin a:=test.create(); a.destroy; end. _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel