From: Mattia B. <mb...@ds...> - 2003-08-22 21:08:37
|
On Wed, 20 Aug 2003 07:25:45 +0200 Jouke Visser <jo...@pv...> wrote: > >>The bug was that when the application closes, it generates an > >>accessviolation in wxApp::END. After an 8 hour debugginsession today, I > >>was finally able to isolate the problem. > > > > Hm? Do you mean YourApp::END? There isn't any END block in my > App.pm... > Err...as far as I can recall, it was Wx::END, which called > wxApp::CleanUp or something. Sorry, this part I had not written down, > but it was something like this. Ok. > >>What's the reason why some classes have this entry and others don't? > >>And if it's not nessecary, is it possible to remove this in a next > >>version? > > > > This is because wxPerl tries to do the right thing WRT memory > management. > > All Wx::Window derived classes are destroyed by wxWindows itself, hence > > they must not have a DESTROY method. Wx::Bitmap objects are destroyed > when > > no longer referenced no, as any other Perl object [1]. > Does Perl's own garbage collection not take care of this? I was unclear: I am referring to the underlying C++ objects, and you can't have Perl take care of this for all classes because otherwise you'd need to store a reference to every windows you create. If you want more details felle free to ask, but this is not directly related to your current problem. > > I can't swear the crash is not caused by a bug in wxPerl, however > > removing the DESTROY method is not a good fix. If you can characterize > it > > (i.e.: load the app, do this and that, and it will reliably crash), > and you > > can send me the sources, I'll try to have a look at it. If you can get > a > > reduced test case, all the better :-) > > I'd really love to send you the whole thing to let you look at it. The > problem is I can't reproduce a small testcase, and you'd need all > imagefiles my datafile refers to, which is several megabytes. Just > starting the application and closing it already causes the access > violation. With this bug I can't release the new version of pVoice, so > I'm quite desperate. Any thoughts? If you can put it somewhere for download, I will have a look at it (just send the URL privately). > I currently use my own compiled wxWindows (without Unicode, version > 2.4.1), my own compiled wxPerl 0.15 (without debugging info, that's > another thing, I can't build it with debugging info because it then > looks for the 'h' suffix on the files and directory, while VC++ 6 builds > the debugging version with the 'd' suffix), and ActivePerl build 635. Ah, right. You need to use wxWindows' makefiles to build a debugging wxWindows version suitable for wxPerl debugging. I'll add instructions to docs/install.txt. Regards Mattia |