[Libreoffice-commits] core.git: Branch 'libreoffice-5-1' - 11 commits - extensions/source instsetoo_native/CustomTarget_setup.mk instsetoo_native/Package_setup.mk RepositoryExternal.mk solenv/gbuild vcl/opengl vcl/source xmlsecurity/source

Michael Stahl mstahl at redhat.com
Mon Nov 30 05:37:55 PST 2015


 RepositoryExternal.mk                        |   17 ++++++++---------
 extensions/source/update/feed/updatefeed.cxx |   20 ++++++++++++--------
 instsetoo_native/CustomTarget_setup.mk       |    9 ---------
 instsetoo_native/Package_setup.mk            |    1 -
 solenv/gbuild/Gallery.mk                     |    5 +----
 solenv/gbuild/gbuild.help.txt                |    3 +++
 solenv/gbuild/platform/macosx.mk             |    4 ++--
 vcl/opengl/win/WinDeviceInfo.cxx             |    4 ++--
 vcl/source/outdev/font.cxx                   |    6 ++++++
 vcl/source/outdev/text.cxx                   |   14 +++++++++++++-
 xmlsecurity/source/xmlsec/saxhelper.cxx      |    2 +-
 11 files changed, 48 insertions(+), 37 deletions(-)

New commits:
commit 1d554c22c27189773dce3890b05ee64048f79016
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 27 12:49:34 2015 +0100

    fix build tool dependencies on INSTROOT files
    
    These should generally be INSTROOT_FOR_BUILD instead; also gengal only
    had the URE's services.rdb (twice) but not the basis layer one.
    
    Change-Id: If9cab809296fd66c1785562c5e5be6b2569d179c
    (cherry picked from commit 4e6b4fbac4d3e1cbbb486aa26940f484a1cb65d1)

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 994348f..2a80542 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3715,10 +3715,9 @@ endef
 define gb_Executable__register_climaker
 $(call gb_Executable_add_runtime_dependencies,climaker,\
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
-	$(call gb_Rdb_get_target_for_build,ure/services) \
-	$(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
+	$(INSTROOT_FOR_BUILD)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
-	$(INSTROOT)/$(LIBO_URE_ETC_FOLDER)/$(call gb_Helper_get_rcfile,uno)
+	$(INSTROOT_FOR_BUILD)/$(LIBO_URE_ETC_FOLDER)/$(call gb_Helper_get_rcfile,uno)
 )
 endef
 
@@ -3746,6 +3745,7 @@ gb_Gallery__UNO_COMPONENTS := \
 	unoxml/source/service/unoxml
 
 # This is used to determine what we need for 'build' platform.
+# FIXME: the library target should be for build too
 define gb_Executable__register_gengal
 $(call gb_Executable_add_runtime_dependencies,gengal,\
 	$(foreach component,$(gb_Gallery__UNO_COMPONENTS) \
@@ -3756,8 +3756,8 @@ $(call gb_Executable_add_runtime_dependencies,gengal,\
 	$(call gb_Package_get_target_for_build,postprocess_registry) \
 	$(call gb_Package_get_target_for_build,instsetoo_native_setup_ure) \
 	$(call gb_Package_get_target_for_build,instsetoo_native_setup) \
-	$(call gb_Rdb_get_target_for_build,ure/services) \
-	$(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
+	$(INSTROOT_FOR_BUILD)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
+	$(INSTROOT_FOR_BUILD)/$(LIBO_ETC_FOLDER)/services/services.rdb \
 	$(call gb_UnoApi_get_target,offapi) \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
@@ -3796,8 +3796,7 @@ $(call gb_Executable_add_runtime_dependencies,saxparser,\
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
 	$(call gb_Package_get_target_for_build,instsetoo_native_setup_ure) \
 	$(call gb_Rdb_get_target_for_build,saxparser) \
-	$(call gb_Rdb_get_target_for_build,ure/services) \
-	$(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
+	$(INSTROOT_FOR_BUILD)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
 endef
@@ -3809,8 +3808,7 @@ endef
 define gb_Executable__register_uno
 $(call gb_Executable_add_runtime_dependencies,uno,\
 	$(call gb_Library_get_target,$(gb_CPPU_ENV)_uno) \
-	$(call gb_Rdb_get_target_for_build,ure/services) \
-	$(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
+	$(INSTROOT_FOR_BUILD)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
 	$(call gb_UnoApi_get_target,udkapi) \
 )
 endef
commit 4f354617ff8c31e62025e2743635d113a6413e16
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 27 12:16:47 2015 +0100

    Revert "gengal: create an ini / rc file - to bootstrap services properly."
    
    This reverts commit 795c61e052671d4de6a3b9cf77f9c0ad117e064d.
    
    <sberg_> but what is 795c61e052671d4de6a3b9cf77f9c0ad117e064d
    supposed to help anyway?  on all platforms, gengal should already get
    URE_BOOTSTRAP set, either via redirectrc, or via
    extendApplicationEnvironment()
    <mst_> sberg_: so ... you mean that gengal.rc is actually unnecessary,
    and that the problem was caused by a missing dep on
    Package_instsetoo_native_setup ?
    <sberg_> I'm pretty sure a missing gengal ini-file was a red herring
    
    Change-Id: I50ebc360e0e5c75c16f8407cbac6a54753fca272
    Reviewed-on: https://gerrit.libreoffice.org/20226
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit 5c4ca57923a5409b96b1ac999f6b89c53e52829e)

diff --git a/instsetoo_native/CustomTarget_setup.mk b/instsetoo_native/CustomTarget_setup.mk
index 3edf1b8..e4cdd53 100644
--- a/instsetoo_native/CustomTarget_setup.mk
+++ b/instsetoo_native/CustomTarget_setup.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_CustomTarget_CustomTarget,instsetoo_native/setup))
 $(eval $(call gb_CustomTarget_register_targets,instsetoo_native/setup,\
 	$(call gb_Helper_get_rcfile,bootstrap) \
 	$(call gb_Helper_get_rcfile,fundamental) \
-	$(call gb_Helper_get_rcfile,gengal) \
 	$(call gb_Helper_get_rcfile,louno) \
 	$(if $(filter DESKTOP,$(BUILD_TYPE)),$(if $(filter-out MACOSX,$(OS)), \
 	    $(call gb_Helper_get_rcfile,redirect))) \
@@ -24,7 +23,6 @@ $(eval $(call gb_CustomTarget_register_targets,instsetoo_native/setup,\
 
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,bootstrap) \
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,fundamental) \
-$(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,gengal) \
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,louno) \
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,redirect) \
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,setup) \
@@ -122,13 +120,6 @@ $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_
 		&& echo 'URE_BOOTSTRAP=$${ORIGIN}/$(call gb_Helper_get_rcfile,fundamental)' \
 	) > $@
 
-$(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,gengal) :
-	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
-	( \
-		echo '[Bootstrap]' \
-		&& echo 'URE_BOOTSTRAP=$${ORIGIN}/$(call gb_Helper_get_rcfile,fundamental)' \
-	) > $@
-
 $(call gb_CustomTarget_get_workdir,instsetoo_native/setup)/$(call gb_Helper_get_rcfile,uno) :
 	$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),ECH,1)
 	( \
diff --git a/instsetoo_native/Package_setup.mk b/instsetoo_native/Package_setup.mk
index 2c67544..5b1e427 100644
--- a/instsetoo_native/Package_setup.mk
+++ b/instsetoo_native/Package_setup.mk
@@ -12,7 +12,6 @@ $(eval $(call gb_Package_Package,instsetoo_native_setup,$(call gb_CustomTarget_g
 $(eval $(call gb_Package_add_files,instsetoo_native_setup,$(LIBO_ETC_FOLDER),\
 	$(call gb_Helper_get_rcfile,bootstrap) \
 	$(call gb_Helper_get_rcfile,fundamental) \
-	$(call gb_Helper_get_rcfile,gengal) \
 	$(if $(filter DESKTOP,$(BUILD_TYPE)),$(if $(filter-out MACOSX,$(OS)), \
 	    $(call gb_Helper_get_rcfile,redirect))) \
 	$(call gb_Helper_get_rcfile,setup) \
commit 6f391e7b80c5d76bc3888c9b21ca435e8263af60
Author: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Date:   Fri Nov 27 11:41:48 2015 +0100

    Revert+RevertRevert "write a log file about OpenGL driver"
    
    Revert "write a log file about OpenGL driver"
    
    Caused enduring build breakage on Windows for gallery contents.
    
    This reverts commit c0772f7037794e1cea578a8833c79730fbe448c2.
    (cherry picked from commit 2ebca292f96494a13a0d0baa8b19dd9010616abe)
    
    Revert "Revert "write a log file about OpenGL driver""
    
    This reverts commit 2ebca292f96494a13a0d0baa8b19dd9010616abe.
    
    The build breakage in gengal was caused by the global variable
    aCacheFolder, which is initialized by a call to
    rtl::Bootstrap::expandMacros(), which initializes the global
    FundamentalIni object before tools::extendApplicationEnvironment() gets
    a chance to set URE_BOOTSTRAP, so FundamentalIni is empty.
    
    Change-Id: I10d8652dab15ee6924ff4ceff17000963975e30f
    Reviewed-on: https://gerrit.libreoffice.org/20232
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
    (cherry picked from commit 47eaebc3b4234b7bcfa790fc2eb584044f1ed8f4)

diff --git a/vcl/opengl/win/WinDeviceInfo.cxx b/vcl/opengl/win/WinDeviceInfo.cxx
index 7d1c837..99bc7a2 100644
--- a/vcl/opengl/win/WinDeviceInfo.cxx
+++ b/vcl/opengl/win/WinDeviceInfo.cxx
@@ -554,8 +554,6 @@ OUString getCacheFolder()
     return url;
 }
 
-OUString aCacheFolder = getCacheFolder();
-
 void writeToLog(SvStream& rStrm, const char* pKey, const OUString rVal)
 {
     rStrm.WriteCharPtr(pKey);
@@ -577,6 +575,8 @@ bool WinOpenGLDeviceInfo::isDeviceBlocked()
     SAL_INFO("vcl.opengl", maDeviceKey);
     SAL_INFO("vcl.opengl", maDeviceString);
 
+    OUString aCacheFolder = getCacheFolder();
+
     OUString aCacheFile(aCacheFolder + "/opengl_device.log");
     SvFileStream aOpenGLLogFile(aCacheFile, StreamMode::WRITE);
 
commit e3a903fdedb6daa43decafb197029a7423fb3af8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 27 11:40:16 2015 +0100

    try to fix gengal dependencies
    
    The component files are not necessary as gb_Executable__register_gengal
    already adds the service.rdb; the gengal.rc is insufficient as that file
    references fundamental.rc which is missing, so depend on the Package
    instead.  Also, INSTDIR is wrong for cross-compile.
    
    Change-Id: I30711a51e04539832657a242d2573c626b1cf8ec
    (cherry picked from commit d764100d620ab8331a8d6bb80984ace09ec65b5c)

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 3830d14..994348f 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -3755,6 +3755,7 @@ $(call gb_Executable_add_runtime_dependencies,gengal,\
 	$(call gb_Package_get_target_for_build,postprocess_images) \
 	$(call gb_Package_get_target_for_build,postprocess_registry) \
 	$(call gb_Package_get_target_for_build,instsetoo_native_setup_ure) \
+	$(call gb_Package_get_target_for_build,instsetoo_native_setup) \
 	$(call gb_Rdb_get_target_for_build,ure/services) \
 	$(INSTROOT)/$(LIBO_URE_MISC_FOLDER)/services.rdb \
 	$(call gb_UnoApi_get_target,offapi) \
diff --git a/solenv/gbuild/Gallery.mk b/solenv/gbuild/Gallery.mk
index a923d0a..2ce708d 100644
--- a/solenv/gbuild/Gallery.mk
+++ b/solenv/gbuild/Gallery.mk
@@ -68,11 +68,7 @@ $(dir $(call gb_Gallery_get_target,$(1)))%/.dir :
 	$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
 
 $(call gb_Gallery_get_target,%) : \
-		$(call gb_Executable_get_runtime_dependencies,gengal) \
-		$(INSTROOT)/$(LIBO_ETC_FOLDER)/services/services.rdb \
-		$(INSTROOT)/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,gengal) \
-	    $(call gb_ComponentTarget_get_target,ucb/source/core/ucb1) \
-	    $(call gb_ComponentTarget_get_target,ucb/source/ucp/file/ucpfile1)
+		$(call gb_Executable_get_runtime_dependencies,gengal)
 	$(call gb_Gallery__command,$@,$*)
 
 $(call gb_Gallery__get_final_target,%) :
commit 0c86ca7638d0b4527a14c5b4842a2f7ff09aac8b
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri Nov 27 10:42:12 2015 +0000

    Mend gallery build dependencies for OS/X and add services/services.rdb dep.
    
    Change-Id: I628b7986253108a6f9ea8eed28ae3b3f0f8b91b1
    (cherry picked from commit a8860122fecbaa932a48f41a38077f621275be9d)

diff --git a/solenv/gbuild/Gallery.mk b/solenv/gbuild/Gallery.mk
index c286339..a923d0a 100644
--- a/solenv/gbuild/Gallery.mk
+++ b/solenv/gbuild/Gallery.mk
@@ -69,7 +69,8 @@ $(dir $(call gb_Gallery_get_target,$(1)))%/.dir :
 
 $(call gb_Gallery_get_target,%) : \
 		$(call gb_Executable_get_runtime_dependencies,gengal) \
-		$(INSTDIR)/program/$(call gb_Helper_get_rcfile,gengal) \
+		$(INSTROOT)/$(LIBO_ETC_FOLDER)/services/services.rdb \
+		$(INSTROOT)/$(LIBO_ETC_FOLDER)/$(call gb_Helper_get_rcfile,gengal) \
 	    $(call gb_ComponentTarget_get_target,ucb/source/core/ucb1) \
 	    $(call gb_ComponentTarget_get_target,ucb/source/ucp/file/ucpfile1)
 	$(call gb_Gallery__command,$@,$*)
commit 3127e5afbc40fffd8951a13b7b6c620205b34c6c
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Fri Nov 27 14:23:27 2015 -0800

    macosx: typo: it is unittest-failed-MACOSX.sh not .mk
    
    Change-Id: Ic1e25f3f945e32f2b99c2cfedc4b8d695635bd8b
    (cherry picked from commit f1c6db90b519d35e7e6b62adbbd07ad5bd4cabfd)

diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index be5cd16..763c9785 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -265,7 +265,7 @@ endef
 
 # CppunitTest class
 
-gb_CppunitTest_UNITTESTFAILED := $(GBUILDDIR)/platform/unittest-failed-MACOSX.mk
+gb_CppunitTest_UNITTESTFAILED := $(GBUILDDIR)/platform/unittest-failed-MACOSX.sh
 gb_CppunitTest_PYTHONDEPS := $(call gb_Library_get_target,pyuno_wrapper) $(if $(SYSTEM_PYTHON),,$(call gb_GeneratedPackage_get_target,python3))
 gb_CppunitTest_CPPTESTPRECOMMAND := \
 	$(call gb_Helper_extend_ld_path,$(gb_Library_DLLDIR):$(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/.libs)
@@ -301,7 +301,7 @@ endef
 
 # PythonTest class
 
-gb_PythonTest_UNITTESTFAILED := $(GBUILDDIR)/platform/unittest-failed-MACOSX.mk
+gb_PythonTest_UNITTESTFAILED := $(GBUILDDIR)/platform/unittest-failed-MACOSX.sh
 gb_PythonTest_DEPS := $(call gb_GeneratedPackage_get_target,python3) $(call gb_Package_get_target,python_shell)
 gb_PythonTest_PRECOMMAND := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY_PATH_VAR):+$$$(gb_Helper_LIBRARY_PATH_VAR):}$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)
 ifneq ($(LIBO_LIB_FOLDER),$(LIBO_URE_LIB_FOLDER))
commit 482df1aa18330a759824dfca8e5b9349278b1f10
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 27 15:52:11 2015 +0100

    gbuild: document BUILDTOOLTRACE variable
    
    Change-Id: I17ebccb268e317346ca05d6a112ec33357684876
    (cherry picked from commit b1b8d82558089dd0979f7c70c4004479a6355616)

diff --git a/solenv/gbuild/gbuild.help.txt b/solenv/gbuild/gbuild.help.txt
index 35b97c7..a0ef94de 100644
--- a/solenv/gbuild/gbuild.help.txt
+++ b/solenv/gbuild/gbuild.help.txt
@@ -89,6 +89,9 @@ AVAILABLE TARGETS
            o Zip
 
 INTERACTIVE VARIABLES:
+       BUILDTOOLTRACE  Run all commands that invoke built tools in strace,
+                       valgrind or a debugger:
+                       BUILDTOOLTRACE='$(DEVENV) /debugexe' PARALLELISM=1 make
        DEBUG / debug   If not empty, build as with --enable-debug.
        ENABLE_SYMBOLS / enable_symbols
                        If not empty, build as with --enable-symbols.
commit 51b479185e03c4b24b84e0360dc324f6980d5106
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Fri Nov 27 15:13:55 2015 +0000

    Catch exception when online update is disabled.
    
    Change-Id: I21d668a288883b739180c6f68397fcc7ecff7885
    (cherry picked from commit 414530e9b24313c04f0151f50b12e26bfe785f54)

diff --git a/extensions/source/update/feed/updatefeed.cxx b/extensions/source/update/feed/updatefeed.cxx
index cbe9139..699cf8d 100644
--- a/extensions/source/update/feed/updatefeed.cxx
+++ b/extensions/source/update/feed/updatefeed.cxx
@@ -338,15 +338,19 @@ UpdateInformationProvider::UpdateInformationProvider(
 bool
 UpdateInformationProvider::isUserAgentExtended()
 {
-    uno::Reference< lang::XMultiServiceFactory > xConfigurationProvider(
-        css::configuration::theDefaultProvider::get(m_xContext));
-
-    uno::Any aExtended = getConfigurationItemAny(
-        xConfigurationProvider,
-        "org.openoffice.Office.Jobs/Jobs/UpdateCheck/Arguments",
-        "ExtendedUserAgent");
     bool bExtendedUserAgent = false;
-    aExtended >>= bExtendedUserAgent;
+    try {
+        uno::Reference< lang::XMultiServiceFactory > xConfigurationProvider(
+            css::configuration::theDefaultProvider::get(m_xContext));
+
+        uno::Any aExtended = getConfigurationItemAny(
+            xConfigurationProvider,
+            "org.openoffice.Office.Jobs/Jobs/UpdateCheck/Arguments",
+            "ExtendedUserAgent");
+        aExtended >>= bExtendedUserAgent;
+    } catch (const uno::RuntimeException &) {
+        SAL_WARN("extensions.update", "Online update disabled");
+    }
     return bExtendedUserAgent;
 }
 
commit f9a135b5094d49920b1224cb4a5ee92a7410d269
Author: Michael Stahl <mstahl at redhat.com>
Date:   Fri Nov 27 09:33:42 2015 +0100

    xmlsecurity: fix DrMemory warning
    
    Presumably that was the intent?
    
    Change-Id: Ibfca90041d6913827d2f329bab448afe4d725b46
    (cherry picked from commit a933990a3f24f7c3ed40500f782f6fcb25462824)

diff --git a/xmlsecurity/source/xmlsec/saxhelper.cxx b/xmlsecurity/source/xmlsec/saxhelper.cxx
index 589e890..5143aac 100644
--- a/xmlsecurity/source/xmlsec/saxhelper.cxx
+++ b/xmlsecurity/source/xmlsec/saxhelper.cxx
@@ -137,7 +137,7 @@ SAXHelper::SAXHelper( )
     {
         xmlSAXVersion(m_pParserCtxt->sax, 1);
 
-        if( m_pParserCtxt->inputTab[0] != nullptr )
+        if (m_pParserCtxt->inputTab != nullptr)
         {
             m_pParserCtxt->inputTab[0] = nullptr ;
         }
commit 708050dcc88fd223103e2c66e260696b843f1cff
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Nov 25 22:42:16 2015 +0100

    vcl: OutputDevice::GetTextArray() should always init pDXAry
    
    CppunitTest_writerperfect_writer file libmwaw/pass/Acta_1.0.hqx uses the
    font "Courier", and for unknown reasons we can't properly load that
    font, because the PhysicalFontFamily::mpFirst for "courier" is null.
    
    This causes OutputDevice::GetTextArray() to fail to create a SalLayout
    and return early before initializing the passed pDXAry, which then
    generates lots of DrMemory warnings.
    
    Let's hope the callers are happy about an all-0 pDXAry.
    
    Change-Id: I07b29a59660cf5cd060fd77da5d96021f9d8f9f5
    (cherry picked from commit e6e409b684f9b046dcde9f0615018508f769c369)

diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx
index 097d21c..8bb7778 100644
--- a/vcl/source/outdev/text.cxx
+++ b/vcl/source/outdev/text.cxx
@@ -1006,7 +1006,7 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry,
     }
 
     if( nIndex >= rStr.getLength() )
-        return 0;
+        return 0; // TODO: this looks like a buggy caller?
 
     if( nLen < 0 || nIndex + nLen >= rStr.getLength() )
     {
@@ -1016,7 +1016,19 @@ long OutputDevice::GetTextArray( const OUString& rStr, long* pDXAry,
     SalLayout *const pSalLayout = ImplLayout(rStr, nIndex, nLen,
             Point(0,0), 0, nullptr, SalLayoutFlags::NONE, pLayoutCache);
     if( !pSalLayout )
+    {
+        // The caller expects this to init the elements of pDXAry.
+        // Adapting all the callers to check that GetTextArray succeeded seems
+        // too much work.
+        // Init here to 0 only in the (rare) error case, so that any missing
+        // element init in the happy case will still be found by tools,
+        // and hope that is sufficient.
+        if (pDXAry)
+        {
+            memset(pDXAry, 0, nLen * sizeof(*pDXAry));
+        }
         return 0;
+    }
 #if VCL_FLOAT_DEVICE_PIXEL
     std::unique_ptr<DeviceCoordinate[]> pDXPixelArray;
     if(pDXAry)
commit 8dec57457a68a00bb33585e867a917509145f931
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Nov 25 21:49:43 2015 +0100

    vcl: warn if we can't set a new font in OutputDevice
    
    Change-Id: I7708590d0c8564271f76e8b80adc566022e6916e
    (cherry picked from commit b6e354b26bfe2c0790c5817cba3cc3a6dad910b9)

diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx
index 5f9f07d..f2885f0 100644
--- a/vcl/source/outdev/font.cxx
+++ b/vcl/source/outdev/font.cxx
@@ -1546,7 +1546,10 @@ bool OutputDevice::ImplNewFont() const
 
     // we need a graphics
     if ( !mpGraphics && !AcquireGraphics() )
+    {
+        SAL_WARN("vcl.gdi", "OutputDevice::ImplNewFont(): no Graphics, no Font");
         return false;
+    }
     SalGraphics* pGraphics = mpGraphics;
     ImplInitFontList();
 
@@ -1577,7 +1580,10 @@ bool OutputDevice::ImplNewFont() const
     ImplFontEntry* pFontEntry = mpFontEntry;
 
     if (!pFontEntry)
+    {
+        SAL_WARN("vcl.gdi", "OutputDevice::ImplNewFont(): no ImplFontEntry, no Font");
         return false;
+    }
 
     // mark when lower layers need to get involved
     mbNewFont = false;


More information about the Libreoffice-commits mailing list