I think this happened because of the patch that transformed mainwindow to have an ::instance() method, but didn`t fully fixed the rest of the code.
On Tue, Feb 18, 2014 at 9:47 PM, Thiago Macieira <thi...@macieira.org>wrote: > Em ter 18 fev 2014, às 16:30:01, Dirk Hohndel escreveu: > > > Can someone verify whether the pointer was null? It looks unlikely > though. > > > > Definitely not null. And adding qDebug() to the lastUsedImageDir() > > function I was able to see that it got called. But something in that > > process destroyed the MainWindow object. Specifically, returning from > > that function appeared to cause bad things to happen inside the > > MainWindow object. And Valgrind didn't find ANYTHING. > > > > I can easily reproduce the situation if you want to poke at it on a life > > machine :-) > > I could reproduce on mine. > > Actually, my bullet grazed the skull of the bug here. dive_list() did not > return NULL, but it did become null after that line. > > Here's why: > MainWindow().dive_list()->lastUsedImageDir(), > > That should have been: > MainWindow::instance().dive_list() > > That MainWindow() there creates a new main window temporary, which > overwrites > m_Instance. At the end of that line (at the ;), the temporary gets > destroyed > and sets m_Instance to null. > > So the next MainWindow::instance() call returns null. > > So Robert's patch fixes the issue. It's correct. In addition to that, > please > apply my patch that adds an assertion to prevent this problem from > happening > again. > > -- > Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org > Software Architect - Intel Open Source Technology Center > PGP/GPG: 0x6EF45358; fingerprint: > E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358 > > _______________________________________________ > subsurface mailing list > subsurface@hohndel.org > http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface >
_______________________________________________ subsurface mailing list subsurface@hohndel.org http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface