[Libreoffice-commits] core.git: 2 commits - fpicker/source include/vcl vcl/source

Caolán McNamara caolanm at redhat.com
Wed Jul 2 03:57:39 PDT 2014


 fpicker/source/office/iodlgimp.hxx |    2 +-
 include/vcl/builder.hxx            |    3 +++
 vcl/source/window/builder.cxx      |    7 ++++++-
 3 files changed, 10 insertions(+), 2 deletions(-)

New commits:
commit 5a83b31acab390785505b84895359fa9fbc25ed9
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jul 2 11:43:45 2014 +0100

    expose a way to drop ownership of a window from builder tree
    
    Change-Id: I6f6bff32271ed1d6c328ba211a6b1249fda039dd

diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx
index 3f4841e..baa77d3 100644
--- a/include/vcl/builder.hxx
+++ b/include/vcl/builder.hxx
@@ -297,6 +297,9 @@ public:
     OString get_by_window(const ::Window *pWindow) const;
     void delete_by_window(const ::Window *pWindow);
 
+    //release ownership of pWindow, i.e. don't delete it
+    void drop_ownership(const ::Window *pWindow);
+
     //apply the properties of rProps to pWindow
     static void set_properties(::Window *pWindow, const stringmap &rProps);
 
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 98055fc..e336a05 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -2998,12 +2998,17 @@ void VclBuilder::delete_by_name(const OString& sID)
 
 void VclBuilder::delete_by_window(const Window *pWindow)
 {
+    drop_ownership(pWindow);
+    delete pWindow;
+}
+
+void VclBuilder::drop_ownership(const Window *pWindow)
+{
     for (std::vector<WinAndId>::iterator aI = m_aChildren.begin(),
          aEnd = m_aChildren.end(); aI != aEnd; ++aI)
     {
         if (aI->m_pWindow == pWindow)
         {
-            delete aI->m_pWindow;
             m_aChildren.erase(aI);
             break;
         }
commit 5983675eccd9517915d8f5558c25f47c952edb24
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Jul 2 11:09:22 2014 +0100

    fix crash when m_aType is '*'
    
    Change-Id: If2c4ca98814a58b785cd2670eac1e522e70464fd

diff --git a/fpicker/source/office/iodlgimp.hxx b/fpicker/source/office/iodlgimp.hxx
index 9b5d5e2..9461af9 100644
--- a/fpicker/source/office/iodlgimp.hxx
+++ b/fpicker/source/office/iodlgimp.hxx
@@ -57,7 +57,7 @@ public:
 
     const OUString&     GetName() const     { return m_aName; }
     const OUString&     GetType() const     { return m_aType; }
-    const OUString      GetExtension() const    { return m_aType.copy( 2 ); }
+    const OUString      GetExtension() const    { return m_aType.getLength() > 2 ? m_aType.copy( 2 ) : OUString(); }
 
     bool            isGroupSeparator() const    { return m_aType.isEmpty(); }
 };


More information about the Libreoffice-commits mailing list