[Libreoffice-commits] core.git: include/xmloff xmloff/source

Michael Stahl Michael.Stahl at cib.de
Tue Apr 10 10:10:22 UTC 2018


 include/xmloff/controlpropertyhdl.hxx      |    2 ++
 xmloff/source/forms/controlpropertyhdl.cxx |   10 +++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

New commits:
commit fa47856e51c2c1102b3df0adead2c0701bd4cbde
Author: Michael Stahl <Michael.Stahl at cib.de>
Date:   Tue Apr 10 10:26:44 2018 +0200

    xmloff: fix leak in XMLPropertySetMapperEntry_Impl
    
    The XMLNamedBoolPropertyHdl should be owned by
    OControlPropertyHandlerFactory like all the other handlers created in
    that function.
    
    Thanks to Julien Nabet for pointing out the problem.
    
    Change-Id: Id474b2fdb84ca74f686d0c888fbedbee623c31bb
    Reviewed-on: https://gerrit.libreoffice.org/52666
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <Michael.Stahl at cib.de>

diff --git a/include/xmloff/controlpropertyhdl.hxx b/include/xmloff/controlpropertyhdl.hxx
index edcbd476f915..dd7010cc0f8f 100644
--- a/include/xmloff/controlpropertyhdl.hxx
+++ b/include/xmloff/controlpropertyhdl.hxx
@@ -30,6 +30,7 @@
 #include <rtl/ustring.hxx>
 #include <xmloff/xmlexppr.hxx>
 #include <xmloff/XMLConstantsPropertyHandler.hxx>
+#include <xmloff/NamedBoolPropertyHdl.hxx>
 
 template<typename EnumT> struct SvXMLEnumMapEntry;
 class Color;
@@ -119,6 +120,7 @@ namespace xmloff
         mutable std::unique_ptr<OFontWidthHandler>              m_pFontWidthHandler;
         mutable std::unique_ptr<XMLConstantsPropertyHandler>    m_pFontEmphasisHandler;
         mutable std::unique_ptr<XMLConstantsPropertyHandler>    m_pFontReliefHandler;
+        mutable std::unique_ptr<XMLNamedBoolPropertyHdl>        m_pTextLineModeHandler;
 
     public:
         OControlPropertyHandlerFactory();
diff --git a/xmloff/source/forms/controlpropertyhdl.cxx b/xmloff/source/forms/controlpropertyhdl.cxx
index ba5a27f8661d..839789167e9e 100644
--- a/xmloff/source/forms/controlpropertyhdl.cxx
+++ b/xmloff/source/forms/controlpropertyhdl.cxx
@@ -99,9 +99,13 @@ namespace xmloff
                 pHandler = m_pFontReliefHandler.get();
                 break;
             case XML_TYPE_TEXT_LINE_MODE:
-                pHandler = new XMLNamedBoolPropertyHdl(
-                                            ::xmloff::token::XML_SKIP_WHITE_SPACE,
-                                            ::xmloff::token::XML_CONTINUOUS);
+                if (!m_pTextLineModeHandler)
+                {
+                    m_pTextLineModeHandler = o3tl::make_unique<XMLNamedBoolPropertyHdl>(
+                            ::xmloff::token::XML_SKIP_WHITE_SPACE,
+                            ::xmloff::token::XML_CONTINUOUS);
+                }
+                pHandler = m_pTextLineModeHandler.get();
                 break;
         }
 


More information about the Libreoffice-commits mailing list