basctl/source/basicide/layout.cxx |    5 +++++
 basctl/source/basicide/layout.hxx |    5 +----
 2 files changed, 6 insertions(+), 4 deletions(-)

New commits:
commit 3f5ce7de7cdc3d010738e4cffbe28b3b73676f5a
Author: Noel Grandin <n...@peralex.com>
Date:   Tue May 26 12:42:44 2015 +0200

    tdf#91575 - CRASH: when "My Macros & Dialogs Standard" window close
    
    Change-Id: Iad4f67e78a0aa4c67f0c450e17278f873944aa23
    (cherry picked from commit dbca69b975ea8b25c040f12441d70f90cf0e9ab4)

diff --git a/basctl/source/basicide/layout.cxx 
b/basctl/source/basicide/layout.cxx
index a42c99c..12ad627 100644
--- a/basctl/source/basicide/layout.cxx
+++ b/basctl/source/basicide/layout.cxx
@@ -184,7 +184,10 @@ void Layout::SplittedSide::dispose()
 {
     aSplitter.disposeAndClear();
     for (auto i = vItems.begin(); i != vItems.end(); ++i)
+    {
         i->pSplit.disposeAndClear();
+        i->pWin.clear();
+    }
 }
 
 // Add() -- adds a new window to the side (after construction)
@@ -223,6 +226,8 @@ void Layout::SplittedSide::Remove (DockingWindow* pWin)
     if (iWin == vItems.size())
         return;
     // remove
+    vItems[iWin].pSplit.disposeAndClear();
+    vItems[iWin].pWin.clear();
     vItems.erase(vItems.begin() + iWin);
     // if that was the first one, remove the first splitter line
     if (iWin == 0 && !vItems.empty())
diff --git a/basctl/source/basicide/layout.hxx 
b/basctl/source/basicide/layout.hxx
index 3400866..6d949c7 100644
--- a/basctl/source/basicide/layout.hxx
+++ b/basctl/source/basicide/layout.hxx
@@ -61,7 +61,6 @@ protected:
     void Remove (DockingWindow*);
     bool HasSize () const { return !bFirstSize; }
 
-protected:
     // Window:
     virtual void Resize () SAL_OVERRIDE;
     virtual void DataChanged (DataChangedEvent const& rDCEvt) SAL_OVERRIDE;
@@ -117,12 +116,10 @@ private:
             VclPtr<Splitter> pSplit;
         };
         std::vector<Item> vItems;
-    private:
+
         Point MakePoint (long, long) const;
         Size MakeSize (long, long) const;
-    private:
         static bool IsDocking (DockingWindow const&);
-    private:
         DECL_LINK(SplitHdl, Splitter*);
         void CheckMarginsFor (Splitter*);
         void InitSplitter (Splitter&);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to