Hello, I reproduced the problem indicated by fdo#48368 and attached to the bugtracker bt with symbols (see https://bugs.freedesktop.org/attachment.cgi?id=59985&action=edit)
Here are the lines of basctl/source/basicide/basidesh.cxx which seem to cause the problem : 420 for ( sal_uLong nWin = 0; bCanClose && ( nWin < aIDEWindowTable.size() ); nWin++ ) 421 { 422 IDEBaseWindow* pWin = aIDEWindowTable[ nWin ]; 423 if ( !pWin->CanClose() ) I runned this on gdb and found this : aIDEWindowTable.size() = 1 but even at the first loop, pWin is null so line 423 fails. I searched about aIDEWindowTable and found this in basctl/source/inc/basidesh.hxx : 62 #if _SOLAR__PRIVATE 63 typedef std::map<sal_uInt16, IDEBaseWindow*> IDEWindowTable; 64 #else 65 typedef std::map<sal_uInt16, void*> IDEWindowTable; 66 #endif So I propose this straight forward fix : diff --git a/basctl/source/basicide/basidesh.cxx b/basctl/source/basicide/basidesh.cxx index e4dcd98..02e10c2 100644 --- a/basctl/source/basicide/basidesh.cxx +++ b/basctl/source/basicide/basidesh.cxx @@ -417,9 +417,9 @@ sal_uInt16 BasicIDEShell::PrepareClose( sal_Bool bUI, sal_Bool bForBrowsing ) else { sal_Bool bCanClose = sal_True; - for ( sal_uLong nWin = 0; bCanClose && ( nWin < aIDEWindowTable.size() ); nWin++ ) + for (IDEWindowTable::const_iterator it = aIDEWindowTable.begin(); bCanClose && (it != aIDEWindowTable.end()); ++it) { - IDEBaseWindow* pWin = aIDEWindowTable[ nWin ]; + IDEBaseWindow* pWin = it->second; if ( !pWin->CanClose() ) { if ( !m_aCurLibName.isEmpty() && ( pWin->IsDocument( m_aCurDocument ) || pWin->GetLibName() != m_aCurLibName ) ) I can commit and push on master of course but I'd like first your opinion about this. Julien. -- View this message in context: http://nabble.documentfoundation.org/PATCH-fix-proposed-for-fdo-48368-tp3910905p3910905.html Sent from the Dev mailing list archive at Nabble.com. _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice