Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.