[Libreoffice-commits] core.git: 9 commits - drawinglayer/source external/boost external/cppunit external/harfbuzz external/icu external/libodfgen filter/source include/com include/registry include/rtl include/sfx2 include/tools include/typelib include/uno package/source RepositoryExternal.mk sal/textenc sc/inc scripting/source sc/source sd/source svl/source svtools/source sw/qa sw/source vcl/inc vcl/source vcl/unx xmloff/source

Stephan Bergmann sbergman at redhat.com
Mon Jan 26 06:18:20 PST 2015


 RepositoryExternal.mk                                        |    2 
 drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx |    1 
 external/boost/UnpackedTarball_boost.mk                      |    1 
 external/boost/rtti.patch.0                                  |   20 +++++
 external/cppunit/UnpackedTarball_cppunit.mk                  |    1 
 external/cppunit/rtti.patch.0                                |   15 +++
 external/harfbuzz/ubsan.patch                                |   42 +++++++++++
 external/icu/UnpackedTarball_icu.mk                          |    1 
 external/icu/rtti.patch.0                                    |   11 ++
 external/libodfgen/ExternalProject_libodfgen.mk              |    2 
 external/libodfgen/UnpackedTarball_libodfgen.mk              |    1 
 external/libodfgen/rtti.patch                                |   11 ++
 filter/source/graphicfilter/ipict/ipict.cxx                  |    3 
 include/com/sun/star/uno/Any.h                               |    2 
 include/com/sun/star/uno/Reference.h                         |    2 
 include/com/sun/star/uno/Sequence.h                          |    2 
 include/com/sun/star/uno/Type.h                              |    2 
 include/registry/regtype.h                                   |    6 -
 include/rtl/alloc.h                                          |    2 
 include/rtl/string.hxx                                       |    2 
 include/rtl/unload.h                                         |    2 
 include/rtl/ustring.h                                        |    2 
 include/rtl/ustring.hxx                                      |    2 
 include/sfx2/childwin.hxx                                    |    8 +-
 include/tools/ref.hxx                                        |    2 
 include/typelib/typedescription.h                            |    6 -
 include/uno/any2.h                                           |    2 
 include/uno/dispatcher.h                                     |    2 
 include/uno/environment.h                                    |    4 -
 include/uno/mapping.h                                        |    2 
 package/source/xstor/xfactory.cxx                            |    3 
 sal/textenc/tenchelp.hxx                                     |    2 
 sc/inc/filter.hxx                                            |    2 
 sc/source/ui/view/tabvwsh.cxx                                |    3 
 scripting/source/vbaevents/service.cxx                       |    6 -
 sd/source/filter/eppt/eppt.cxx                               |    7 +
 sd/source/filter/html/HtmlOptionsDialog.cxx                  |    1 
 svl/source/uno/pathservice.cxx                               |    1 
 svtools/source/control/asynclink.cxx                         |    8 --
 sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx          |binary
 sw/source/uibase/web/wdocsh.cxx                              |    3 
 sw/source/uibase/web/wformsh.cxx                             |    3 
 sw/source/uibase/web/wfrmsh.cxx                              |    3 
 sw/source/uibase/web/wgrfsh.cxx                              |    3 
 sw/source/uibase/web/wlistsh.cxx                             |    3 
 sw/source/uibase/web/wtabsh.cxx                              |    3 
 sw/source/uibase/web/wtextsh.cxx                             |    3 
 sw/source/uibase/web/wview.cxx                               |    3 
 vcl/inc/salframe.hxx                                         |    4 -
 vcl/inc/unx/desktops.hxx                                     |    6 +
 vcl/source/components/dtranscomp.cxx                         |    1 
 vcl/source/components/fontident.cxx                          |    1 
 vcl/unx/generic/plugadapt/salplug.cxx                        |   11 ++
 xmloff/source/chart/SchXMLExport.cxx                         |    1 
 xmloff/source/draw/animationimport.cxx                       |    1 
 xmloff/source/meta/MetaImportComponent.cxx                   |    1 
 xmloff/source/transform/OOo2Oasis.cxx                        |    1 
 xmloff/source/transform/Oasis2OOo.cxx                        |    1 
 58 files changed, 202 insertions(+), 44 deletions(-)

New commits:
commit 6de91546198e5bfbe0399274284114b550e2f030
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:16:48 2015 +0100

    Make sure _nEventId gets reset after calling RemoveUserEvent
    
    Change-Id: I8f90fb809d5275e8a74964776f01f4d563f2e657

diff --git a/svtools/source/control/asynclink.cxx b/svtools/source/control/asynclink.cxx
index 1efd934..ca745b2 100644
--- a/svtools/source/control/asynclink.cxx
+++ b/svtools/source/control/asynclink.cxx
@@ -48,13 +48,7 @@ bAllowDoubles
         DBG_ASSERT( bAllowDoubles ||
                     ( !_nEventId && ( !_pIdle || !_pIdle->IsActive() ) ),
                     "Schon ein Call unterwegs" );
-        if( _nEventId )
-        {
-            if( _pMutex ) _pMutex->acquire();
-            Application::RemoveUserEvent( _nEventId );
-            if( _pMutex ) _pMutex->release();
-        }
-        if( _pIdle )_pIdle->Stop();
+        ClearPendingCall();
         if( bUseTimer )
         {
             if( !_pIdle )
commit 2de1b86d79ca29c53d31606a10ac745d3621fb2b
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:15:54 2015 +0100

    external/harfbuzz: Fix types of functions called via pointer
    
    (-fsanitize=function)
    
    Change-Id: I009f1558990a46900e2dfa56492827cb6dcfb3cd

diff --git a/external/harfbuzz/ubsan.patch b/external/harfbuzz/ubsan.patch
index 3bdb589..6c301c4 100644
--- a/external/harfbuzz/ubsan.patch
+++ b/external/harfbuzz/ubsan.patch
@@ -42,3 +42,45 @@
  }
  template <typename Type>
  static inline bool hb_object_set_user_data (Type               *obj,
+--- src/hb-ot-map-private.hh
++++ src/hb-ot-map-private.hh
+@@ -52,8 +52,12 @@
+     unsigned int needs_fallback : 1;
+     unsigned int auto_zwj : 1;
+ 
+-    static int cmp (const feature_map_t *a, const feature_map_t *b)
+-    { return a->tag < b->tag ? -1 : a->tag > b->tag ? 1 : 0; }
++    static int cmp (const void *va, const void *vb)
++    {
++      const feature_map_t *a = static_cast<const feature_map_t *>(va);
++      const feature_map_t *b = static_cast<const feature_map_t *>(vb);
++      return a->tag < b->tag ? -1 : a->tag > b->tag ? 1 : 0;
++    }
+   };
+ 
+   struct lookup_map_t {
+--- src/hb-ot-tag.cc
++++ src/hb-ot-tag.cc
+@@ -591,9 +591,11 @@
+ };
+ 
+ static int
+-lang_compare_first_component (const char *a,
+-			      const char *b)
++lang_compare_first_component (const void *va,
++			      const void *vb)
+ {
++  const char *a = static_cast<const char *>(va);
++  const char *b = static_cast<const char *>(vb);
+   unsigned int da, db;
+   const char *p;
+ 
+@@ -641,7 +643,7 @@
+   /* Find a language matching in the first component */
+   lang_tag = (LangTag *) bsearch (lang_str, ot_languages,
+ 				  ARRAY_LENGTH (ot_languages), sizeof (LangTag),
+-				  (hb_compare_func_t) lang_compare_first_component);
++				  lang_compare_first_component);
+   if (lang_tag)
+     return lang_tag->tag;
+ 
commit 3f5ccf572a12d1ac54d47ab7fcdc23f7bb8f132b
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:15:08 2015 +0100

    Fix types of functions called via pointer (-fsanitze=function)
    
    Change-Id: Ife0151a04477ce30bb132e6dfae9f4d3a74bf4b0

diff --git a/scripting/source/vbaevents/service.cxx b/scripting/source/vbaevents/service.cxx
index f599dc0..d6f21e2 100644
--- a/scripting/source/vbaevents/service.cxx
+++ b/scripting/source/vbaevents/service.cxx
@@ -19,8 +19,6 @@
 
 #include "cppuhelper/implementationentry.hxx"
 #include <osl/diagnose.h>
-#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-#include "com/sun/star/registry/XRegistryKey.hpp"
 
 #include <service.hxx>
 
@@ -49,8 +47,8 @@ using namespace ::com::sun::star::uno;
 extern "C"
 {
     SAL_DLLPUBLIC_EXPORT  void * SAL_CALL vbaevents_component_getFactory(
-        const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
-        registry::XRegistryKey * pRegistryKey )
+        const sal_Char * pImplName, void * pServiceManager,
+        void * pRegistryKey )
     {
         OSL_TRACE("In component_getFactory");
         return ::cppu::component_getFactoryHelper(
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index f4b4d82..c40de34 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -1448,7 +1448,7 @@ bool PPTWriter::ImplWriteAtomEnding()
 
 // - exported function -
 
-extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL ExportPPT( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
+extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL ExportPPT( const std::vector< com::sun::star::beans::PropertyValue >& rMediaData, SvStorageRef& rSvStorage,
                     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > & rXModel,
                         ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > & rXStatInd,
                             SvMemoryStream* pVBA, sal_uInt32 nCnvrtFlags )
@@ -1467,7 +1467,7 @@ extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL ExportPPT( const std::vector< com:
     return bStatus;
 }
 
-extern "C" SAL_DLLPUBLIC_EXPORT bool SAL_CALL SaveVBA( SfxObjectShell& rDocShell, SvMemoryStream*& pBas )
+extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL SaveVBA( SfxObjectShell& rDocShell, SvMemoryStream*& pBas )
 {
     SvStorageRef xDest( new SvStorage( new SvMemoryStream(), true ) );
     SvxImportMSVBasic aMSVBas( rDocShell, *xDest );
diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx
index 0b7be99..69e3f60 100644
--- a/vcl/unx/generic/plugadapt/salplug.cxx
+++ b/vcl/unx/generic/plugadapt/salplug.cxx
@@ -139,6 +139,12 @@ static SalInstance* tryInstance( const OUString& rModuleBase, bool bForce = fals
 
 #if !defined(ANDROID)
 
+namespace {
+
+extern "C" typedef DesktopType Fn_get_desktop_environment();
+
+}
+
 static DesktopType get_desktop_environment()
 {
     OUString aModule(DESKTOP_DETECTOR_DLL_NAME);
@@ -148,8 +154,9 @@ static DesktopType get_desktop_environment()
     DesktopType ret = DESKTOP_UNKNOWN;
     if( aMod )
     {
-        DesktopType (*pSym)() = reinterpret_cast<DesktopType(*)()>(
-            osl_getAsciiFunctionSymbol( aMod, "get_desktop_environment" ));
+        Fn_get_desktop_environment * pSym
+            = reinterpret_cast<Fn_get_desktop_environment *>(
+                osl_getAsciiFunctionSymbol(aMod, "get_desktop_environment"));
         if( pSym )
             ret = pSym();
     }
commit b6ee5cf707343e5393514a47c024535ea6c1b7d1
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:09:13 2015 +0100

    external/lib{odfgen,revenge}: Declare proper symbol visibility
    
    ...not only when building the libs themselves, but also when including their
    header files from other code.  (Omission only becomes obvious with hidden
    function type RTTI causing false positives from Clang -fsanitize=function.)  As
    these external libs do not record the decision to enable visiblity in a config
    header file that gets included, it appears easiest to hack that knowledge into
    gbuild for now.  (Note that libodfgen internally uses librevenge.)
    
    Change-Id: I6a3a722d561b8cbce6e5b1f27d7aa2d7602f3cdf

diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 5799da2..9789959 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -1795,6 +1795,7 @@ $(call gb_LinkTarget_use_package,$(1),libodfgen)
 
 $(call gb_LinkTarget_set_include,$(1),\
 	-I$(call gb_UnpackedTarball_get_dir,libodfgen)/inc \
+	-DLIBODFGEN_VISIBILITY \
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
@@ -1856,6 +1857,7 @@ $(call gb_LinkTarget_use_package,$(1),librevenge)
 
 $(call gb_LinkTarget_set_include,$(1),\
 	$(REVENGE_CFLAGS) \
+	-DLIBREVENGE_VISIBILITY \
 	$$(INCLUDE) \
 )
 $(call gb_LinkTarget_add_libs,$(1),\
diff --git a/external/libodfgen/ExternalProject_libodfgen.mk b/external/libodfgen/ExternalProject_libodfgen.mk
index 527681a..066ea86 100644
--- a/external/libodfgen/ExternalProject_libodfgen.mk
+++ b/external/libodfgen/ExternalProject_libodfgen.mk
@@ -35,7 +35,7 @@ $(call gb_ExternalProject_get_state_target,libodfgen,build) :
 			--disable-weffc \
 			--without-docs \
 			$(if $(VERBOSE)$(verbose),--disable-silent-rules,--enable-silent-rules) \
-			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost))" \
+			CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost)) $(if $(SYSTEM_REVENGE),,$(if $(filter-out MSC,$(COM)),-DLIBREVENGE_VISIBILITY))" \
 			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
 			$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
 		&& $(MAKE) \
commit 6f762e3a26be0dae8ad65f46a4a4b7193a494242
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:07:59 2015 +0100

    external/libodfgen: Visible function type RTTI for Clang -fsanitize=function
    
    Change-Id: I32c115aa46855375cc28402f21f4f63299e165d4

diff --git a/external/libodfgen/UnpackedTarball_libodfgen.mk b/external/libodfgen/UnpackedTarball_libodfgen.mk
index 04f5149..965a278 100644
--- a/external/libodfgen/UnpackedTarball_libodfgen.mk
+++ b/external/libodfgen/UnpackedTarball_libodfgen.mk
@@ -15,6 +15,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libodfgen,0))
 
 $(eval $(call gb_UnpackedTarball_add_patches,libodfgen, \
 	external/libodfgen/missing-ifdef.patch \
+	external/libodfgen/rtti.patch \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libodfgen/rtti.patch b/external/libodfgen/rtti.patch
new file mode 100644
index 0000000..2de9e94
--- /dev/null
+++ b/external/libodfgen/rtti.patch
@@ -0,0 +1,11 @@
+--- inc/libodfgen/OdfDocumentHandler.hxx
++++ inc/libodfgen/OdfDocumentHandler.hxx
+@@ -32,7 +32,7 @@
+   *
+   * @sa OdgGenerator, OdpGenerator, OdtGenerator
+   */
+-enum OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML, ODF_MANIFEST_XML };
++enum ODFGENAPI OdfStreamType { ODF_FLAT_XML, ODF_CONTENT_XML, ODF_STYLES_XML, ODF_SETTINGS_XML, ODF_META_XML, ODF_MANIFEST_XML };
+ 
+ class OdfDocumentHandler;
+ 
commit 44c673b978ef958ae85754f8cf5045182c511eb5
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:06:42 2015 +0100

    external/icu: Visible function type RTTI for Clang -fsanitize=function
    
    Change-Id: Ia972d7364b5acfbafd9df5b07f4fb8bd6efbab5f

diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
index e0d18b5..3740450 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -24,6 +24,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
 	external/icu/icu4c-icu11100.patch.1 \
 	external/icu/icu4c-scriptrun.patch \
 	external/icu/icu4c-icu11451.patch.1 \
+	external/icu/rtti.patch.0 \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/icu/rtti.patch.0 b/external/icu/rtti.patch.0
new file mode 100644
index 0000000..2af9622
--- /dev/null
+++ b/external/icu/rtti.patch.0
@@ -0,0 +1,11 @@
+--- source/config/mh-linux
++++ source/config/mh-linux
+@@ -35,7 +35,7 @@
+ #SH# LD_SONAME=
+ 
+ ## Shared library options
+-LD_SOOPTIONS= -Wl,-Bsymbolic
++LD_SOOPTIONS= -Wl,-Bsymbolic-functions
+ 
+ ## Shared object suffix
+ SO = so
commit b3a7e32e8d92bb2ef5b9ec4ec7149518cf3741ba
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:05:18 2015 +0100

    external/cppunit: Visible function type RTTI for Clang -fsanitize=function
    
    Change-Id: Ie2a6e993b7982629aed650d6534a09a9eefe1c51

diff --git a/external/cppunit/UnpackedTarball_cppunit.mk b/external/cppunit/UnpackedTarball_cppunit.mk
index e2f9fa5..b126476 100644
--- a/external/cppunit/UnpackedTarball_cppunit.mk
+++ b/external/cppunit/UnpackedTarball_cppunit.mk
@@ -19,6 +19,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,cppunit,\
 	external/cppunit/CPPUNIT_PLUGIN_EXPORT.patch.0 \
 	external/cppunit/enable-win32-debug.patch \
 	external/cppunit/0001-mark-the-fails-as-no-return.patch.1 \
+	external/cppunit/rtti.patch.0 \
 ))
 ifeq ($(DISABLE_DYNLOADING),TRUE)
 $(eval $(call gb_UnpackedTarball_add_patches,cppunit,\
diff --git a/external/cppunit/rtti.patch.0 b/external/cppunit/rtti.patch.0
new file mode 100644
index 0000000..38d2e6a
--- /dev/null
+++ b/external/cppunit/rtti.patch.0
@@ -0,0 +1,15 @@
+--- include/cppunit/config/CppUnitApi.h
++++ include/cppunit/config/CppUnitApi.h
+@@ -20,6 +20,12 @@
+ #define CPPUNIT_NEED_DLL_DECL 1
+ #endif
+ 
++#elif defined __GNUC__ //TODO: actually only works for modern enough GCC
++
++#define CPPUNIT_API __attribute__ ((visibility("default")))
++#undef CPPUNIT_NEED_DLL_DECL
++#define CPPUNIT_NEED_DLL_DECL 0
++
+ #endif
+ 
+ 
commit 875dc064aa3533dcc41416166ba957c02f81f0bf
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 15:04:19 2015 +0100

    external/boost: Visible function type RTTI for Clang -fsanitize=function
    
    Change-Id: I6a1ab01bbe5cd128b132c3f6dde4b520ddb4c373

diff --git a/external/boost/UnpackedTarball_boost.mk b/external/boost/UnpackedTarball_boost.mk
index 09295d0..b0ffa9e 100644
--- a/external/boost/UnpackedTarball_boost.mk
+++ b/external/boost/UnpackedTarball_boost.mk
@@ -108,6 +108,7 @@ boost_patches += boost.boost_static_assert_unused_attribute.patch.0
 boost_patches += w4702.patch.0
 
 boost_patches += ubsan.patch.0
+boost_patches += rtti.patch.0
 
 $(eval $(call gb_UnpackedTarball_UnpackedTarball,boost))
 
diff --git a/external/boost/rtti.patch.0 b/external/boost/rtti.patch.0
new file mode 100644
index 0000000..fb689ed
--- /dev/null
+++ b/external/boost/rtti.patch.0
@@ -0,0 +1,20 @@
+--- boost/function/function_base.hpp
++++ boost/function/function_base.hpp
+@@ -97,7 +97,7 @@
+        * object pointers, and a structure that resembles a bound
+        * member function pointer.
+        */
+-      union function_buffer
++      union BOOST_SYMBOL_VISIBLE function_buffer
+       {
+         // For pointers to function objects
+         mutable void* obj_ptr;
+@@ -159,7 +159,7 @@
+       };
+ 
+       // The operation type to perform on the given functor/function pointer
+-      enum functor_manager_operation_type {
++      enum BOOST_SYMBOL_VISIBLE functor_manager_operation_type {
+         clone_functor_tag,
+         move_functor_tag,
+         destroy_functor_tag,
commit 598d8194b0ea1a64e0ebba28a86c128bafa57c7c
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon Jan 26 14:57:05 2015 +0100

    Visible function type RTTI for Clang -fsanitize=function
    
    ...by adding some further SAL_DLLPUBLIC_RTTI type annotations (cf.
    b4f6b26b5a1a78fecfa95ec2eb7ac8b80495d8aa "SAL_DLLPUBLIC_RTTI for proper RTTI
    visibility for LLVM") and by making sure relevant function types do not use
    incomplete types in their parameter and return types (which would make the RTTI
    hidden).
    
    Change-Id: Id7aadcbc0704b9759968ae36266fc9ce11a2e340

diff --git a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
index 4ce1d7b..ed5a7304 100644
--- a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
+++ b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
@@ -21,6 +21,7 @@
 
 #include <boost/noncopyable.hpp>
 #include <com/sun/star/graphic/XPrimitive2DRenderer.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <cppuhelper/implbase2.hxx>
 #include <cppuhelper/supportsservice.hxx>
diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx
index 19e1a75..683819c 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -30,7 +30,8 @@
 #include "shape.hxx"
 #include <boost/scoped_array.hpp>
 
-class FilterConfigItem;
+#include <vcl/FilterConfigItem.hxx>
+    // complete FilterConfigItem for GraphicImport under -fsanitize=function
 
 namespace PictReaderInternal {
   //! utilitary class to store a pattern, ...
diff --git a/include/com/sun/star/uno/Any.h b/include/com/sun/star/uno/Any.h
index 2f44d74..ea69ec7 100644
--- a/include/com/sun/star/uno/Any.h
+++ b/include/com/sun/star/uno/Any.h
@@ -46,7 +46,7 @@ class Type;
     return true if the any contains an assignable value (no data loss), e.g. the any contains a
     short and you >>= it into a long variable.
 */
-class SAL_WARN_UNUSED Any : public uno_Any
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Any : public uno_Any
 {
 public:
     /// @cond INTERNAL
diff --git a/include/com/sun/star/uno/Reference.h b/include/com/sun/star/uno/Reference.h
index 47a5c17..91db7f5 100644
--- a/include/com/sun/star/uno/Reference.h
+++ b/include/com/sun/star/uno/Reference.h
@@ -213,7 +213,7 @@ template< typename T2 > struct UpCast< XInterface, T2 > {};
     for reference type.
 */
 template< class interface_type >
-class Reference : public BaseReference
+class SAL_DLLPUBLIC_RTTI Reference : public BaseReference
 {
     /** Queries given interface for type interface_type.
 
diff --git a/include/com/sun/star/uno/Sequence.h b/include/com/sun/star/uno/Sequence.h
index 21e3e9d..b52894d 100644
--- a/include/com/sun/star/uno/Sequence.h
+++ b/include/com/sun/star/uno/Sequence.h
@@ -52,7 +52,7 @@ namespace uno
     @tparam E element type of sequence
 */
 template< class E >
-class SAL_WARN_UNUSED Sequence
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Sequence
 {
     /** sequence handle
     */
diff --git a/include/com/sun/star/uno/Type.h b/include/com/sun/star/uno/Type.h
index 45a8660..c1d0590 100644
--- a/include/com/sun/star/uno/Type.h
+++ b/include/com/sun/star/uno/Type.h
@@ -51,7 +51,7 @@ enum UnoType_NoAcquire
 
     @see typelib_TypeDescriptionReference
 */
-class SAL_WARN_UNUSED Type
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Type
 {
     /** the C typelib reference pointer
     */
diff --git a/include/registry/regtype.h b/include/registry/regtype.h
index b08db81..79c3d99 100644
--- a/include/registry/regtype.h
+++ b/include/registry/regtype.h
@@ -50,7 +50,7 @@ typedef sal_uInt16  RegAccessMode;
     a value and link keys which navigate over the linktarget to an existing
     other key (which are no longer supported).
 */
-enum RegKeyType
+enum SAL_DLLPUBLIC_RTTI RegKeyType
 {
     /// represents a real key
     RG_KEYTYPE,
@@ -66,7 +66,7 @@ enum RegKeyType
     to define own data structures and store these types in the registry. The UNO
     core reflection data is stored as a binary blob in the type registry.
  */
-enum RegValueType
+enum SAL_DLLPUBLIC_RTTI RegValueType
 {
     /// The key has no value or the value type is unknown.
     RG_VALUETYPE_NOT_DEFINED,
@@ -87,7 +87,7 @@ enum RegValueType
 };
 
 /// specifies the possible error codes which can occur using the registry API.
-enum RegError
+enum SAL_DLLPUBLIC_RTTI RegError
 {
     /// no error.
     REG_NO_ERROR,
diff --git a/include/rtl/alloc.h b/include/rtl/alloc.h
index 6a80492..835db15 100644
--- a/include/rtl/alloc.h
+++ b/include/rtl/alloc.h
@@ -131,7 +131,7 @@ SAL_DLLPUBLIC void SAL_CALL rtl_freeAlignedMemory (
 
 /** Opaque rtl_arena_type.
  */
-typedef struct rtl_arena_st rtl_arena_type;
+typedef struct SAL_DLLPUBLIC_RTTI rtl_arena_st rtl_arena_type;
 
 #define RTL_ARENA_NAME_LENGTH 31
 
diff --git a/include/rtl/string.hxx b/include/rtl/string.hxx
index b3a89fc..94dad50 100644
--- a/include/rtl/string.hxx
+++ b/include/rtl/string.hxx
@@ -85,7 +85,7 @@ namespace rtl
   use this class.
 */
 
-class SAL_WARN_UNUSED OString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OString
 {
 public:
     /// @cond INTERNAL
diff --git a/include/rtl/unload.h b/include/rtl/unload.h
index f29a754..53a5df1 100644
--- a/include/rtl/unload.h
+++ b/include/rtl/unload.h
@@ -39,7 +39,7 @@ extern "C"
 
     @deprecated Do not use.
 */
-typedef struct _rtl_ModuleCount
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_ModuleCount
 {
     void ( SAL_CALL * acquire ) ( struct _rtl_ModuleCount * that );
     void ( SAL_CALL * release ) ( struct _rtl_ModuleCount * that );
diff --git a/include/rtl/ustring.h b/include/rtl/ustring.h
index 80c6bcc..8dd70cb 100644
--- a/include/rtl/ustring.h
+++ b/include/rtl/ustring.h
@@ -1173,7 +1173,7 @@ SAL_DLLPUBLIC double SAL_CALL rtl_ustr_toDouble(
 /** @cond INTERNAL */
 /** The implementation of a Unicode string.
 */
-typedef struct _rtl_uString
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_uString
 {
     oslInterlockedCount refCount; /* opaque */
     sal_Int32           length;
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index 4188926..78a6b60 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -111,7 +111,7 @@ template<char C> struct SAL_WARN_UNUSED OUStringLiteral1 {
   less people should have understanding problems when they use this class.
 */
 
-class SAL_WARN_UNUSED OUString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OUString
 {
 public:
     /// @cond INTERNAL
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index d4a8efb..a768e82 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -20,6 +20,7 @@
 #define INCLUDED_SFX2_CHILDWIN_HXX
 
 #include <sal/config.h>
+
 #include <sfx2/dllapi.h>
 #include <sal/types.h>
 #include <vcl/window.hxx>
@@ -28,9 +29,12 @@
 #include <sfx2/shell.hxx>
 #include <sfx2/chalign.hxx>
 
+#include <sfx2/bindings.hxx>
+    // complete SfxBindings for complete SfxChildWinCtor, SfxChildWinContextCtor
+    // under -fsanitize=function
+
 class SfxWorkWindow;
 class SfxModule;
-class SfxBindings;
 class SfxShell;
 class SfxChildWindow;
 class SfxChildWindowContext;
@@ -45,7 +49,7 @@ class SfxChildWindowContext;
 #define CHILDWIN_NOPOS            USHRT_MAX
 
 // ChildWindow Configuration
-struct SfxChildWinInfo
+struct SAL_DLLPUBLIC_RTTI SfxChildWinInfo
 {
     bool                bVisible;
     Point               aPos;
diff --git a/include/tools/ref.hxx b/include/tools/ref.hxx
index aecc2b3..a2cba50 100644
--- a/include/tools/ref.hxx
+++ b/include/tools/ref.hxx
@@ -33,7 +33,7 @@
 namespace tools {
 
 /** T must be a class that extends SvRefBase */
-template<typename T> class SvRef {
+template<typename T> class SAL_DLLPUBLIC_RTTI SvRef {
 public:
     SvRef(): pObj(0) {}
 
diff --git a/include/typelib/typedescription.h b/include/typelib/typedescription.h
index 2b7314f..8ed5ce0 100644
--- a/include/typelib/typedescription.h
+++ b/include/typelib/typedescription.h
@@ -37,7 +37,7 @@ struct _typelib_TypeDescription;
 
 /** Holds a weak reference to a type description.
 */
-typedef struct _typelib_TypeDescriptionReference
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_TypeDescriptionReference
 {
     /** reference count of type; don't ever modify this by yourself, use
         typelib_typedescriptionreference_acquire() and typelib_typedescriptionreference_release()
@@ -68,7 +68,7 @@ typedef struct _typelib_TypeDescriptionReference
     typelib_TypeDescriptionReference for the first six members.
     So a typedescription can be used as type reference.
 */
-typedef struct _typelib_TypeDescription
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_TypeDescription
 {
     /** reference count; don't ever modify this by yourself, use
         typelib_typedescription_acquire() and typelib_typedescription_release()
@@ -367,7 +367,7 @@ typedef struct _typelib_InterfaceAttributeTypeDescription
         <code>typelib_typedescription_complete</code>.</li>
     </ul>
 */
-typedef struct _typelib_InterfaceTypeDescription
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_InterfaceTypeDescription
 {
     /** inherits all members of typelib_TypeDescription
     */
diff --git a/include/uno/any2.h b/include/uno/any2.h
index 49a0d35..556476d 100644
--- a/include/uno/any2.h
+++ b/include/uno/any2.h
@@ -37,7 +37,7 @@ struct _uno_Mapping;
 
 /** This is the binary specification of an UNO any.
 */
-typedef struct _uno_Any
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Any
 {
     /** type of value
     */
diff --git a/include/uno/dispatcher.h b/include/uno/dispatcher.h
index 71d1563..d4bde04 100644
--- a/include/uno/dispatcher.h
+++ b/include/uno/dispatcher.h
@@ -58,7 +58,7 @@ typedef void (SAL_CALL * uno_DispatchMethod)(
 
 /** The binary C uno interface description.
 */
-typedef struct _uno_Interface
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Interface
 {
     /** Acquires uno interface.
 
diff --git a/include/uno/environment.h b/include/uno/environment.h
index f9ab4e6..d005122 100644
--- a/include/uno/environment.h
+++ b/include/uno/environment.h
@@ -38,7 +38,7 @@ struct _typelib_InterfaceTypeDescription;
 
 /** The binary specification of an UNO environment.
 */
-typedef struct _uno_Environment
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Environment
 {
     /** reserved for future use (0 if not used)
     */
@@ -130,7 +130,7 @@ typedef void * (SAL_CALL * uno_memAlloc)( sal_Size nBytes );
 
 /** The binary specification of an UNO environment supporting interface registration.
 */
-typedef struct _uno_ExtEnvironment
+typedef struct SAL_DLLPUBLIC_RTTI _uno_ExtEnvironment
 {
     /** inherits all members of an uno_Environment
     */
diff --git a/include/uno/mapping.h b/include/uno/mapping.h
index 7673514..5a55fbf6 100644
--- a/include/uno/mapping.h
+++ b/include/uno/mapping.h
@@ -61,7 +61,7 @@ typedef void (SAL_CALL * uno_MapInterfaceFunc)(
 
 /** This is the binary specification of a mapping.
 */
-typedef struct _uno_Mapping
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Mapping
 {
     /** Acquires mapping
     */
diff --git a/package/source/xstor/xfactory.cxx b/package/source/xstor/xfactory.cxx
index 11391e4..95bb21a 100644
--- a/package/source/xstor/xfactory.cxx
+++ b/package/source/xstor/xfactory.cxx
@@ -17,6 +17,9 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
+#include <sal/config.h>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/ucb/SimpleFileAccess.hpp>
 #include <com/sun/star/embed/ElementModes.hpp>
 #include <com/sun/star/embed/StorageFormats.hpp>
diff --git a/sal/textenc/tenchelp.hxx b/sal/textenc/tenchelp.hxx
index b2f7fa5..410fca8 100644
--- a/sal/textenc/tenchelp.hxx
+++ b/sal/textenc/tenchelp.hxx
@@ -87,7 +87,7 @@ struct ImplTextConverter
 /* - TextEncoding - Structures - */
 /* ----------------------------- */
 
-struct ImplTextEncodingData
+struct SAL_DLLPUBLIC_RTTI ImplTextEncodingData
 {
     ImplTextConverter maConverter;
     sal_uInt8 mnMinCharSize;
diff --git a/sc/inc/filter.hxx b/sc/inc/filter.hxx
index 4602f19..40d93fd 100644
--- a/sc/inc/filter.hxx
+++ b/sc/inc/filter.hxx
@@ -79,7 +79,7 @@ class ScEEAbsImport {
         SvNumberFormatter* pFormatter = NULL, bool bConvertDate = true ) = 0;
 };
 
-class ScFormatFilterPlugin {
+class SAL_DLLPUBLIC_RTTI ScFormatFilterPlugin {
   public:
     // various import filters
     virtual FltError ScImportLotus123( SfxMedium&, ScDocument*, rtl_TextEncoding eSrc = RTL_TEXTENCODING_DONTKNOW ) = 0;
diff --git a/sc/source/ui/view/tabvwsh.cxx b/sc/source/ui/view/tabvwsh.cxx
index c22278b..95b3903 100644
--- a/sc/source/ui/view/tabvwsh.cxx
+++ b/sc/source/ui/view/tabvwsh.cxx
@@ -41,6 +41,9 @@
 #include "spelldialog.hxx"
 #include <searchresults.hxx>
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in scslots.hxx
 #define ScTabViewShell
 #include "scslots.hxx"
 
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index c66192f..f4b4d82 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -55,6 +55,9 @@
 #include <oox/ole/olehelper.hxx>
 #include <rtl/math.hxx>
 
+#include <sfx2/objsh.hxx>
+    // complete SfxObjectShell for SaveVBA under -fsanitize=function
+
 using namespace com::sun::star;
 using namespace ::com::sun::star::uno;
 using namespace ::com::sun::star::presentation;
diff --git a/sd/source/filter/html/HtmlOptionsDialog.cxx b/sd/source/filter/html/HtmlOptionsDialog.cxx
index 2945f52..d837d87 100644
--- a/sd/source/filter/html/HtmlOptionsDialog.cxx
+++ b/sd/source/filter/html/HtmlOptionsDialog.cxx
@@ -22,6 +22,7 @@
 #include <com/sun/star/frame/XModel.hpp>
 #include <com/sun/star/document/XViewDataSupplier.hpp>
 #include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/uno/Sequence.h>
 #include <com/sun/star/uno/Any.h>
diff --git a/svl/source/uno/pathservice.cxx b/svl/source/uno/pathservice.cxx
index 8ad781f..91a640d 100644
--- a/svl/source/uno/pathservice.cxx
+++ b/svl/source/uno/pathservice.cxx
@@ -24,6 +24,7 @@
 #include <cppuhelper/implbase2.hxx>
 #include <cppuhelper/supportsservice.hxx>
 #include <com/sun/star/frame/XConfigManager.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 
 #include <registerservices.hxx>
diff --git a/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx b/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx
new file mode 100644
index 0000000..48fde87
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx differ
diff --git a/sw/source/uibase/web/wdocsh.cxx b/sw/source/uibase/web/wdocsh.cxx
index afe8718..275fbb0 100644
--- a/sw/source/uibase/web/wdocsh.cxx
+++ b/sw/source/uibase/web/wdocsh.cxx
@@ -33,6 +33,9 @@
 #include "wdocsh.hxx"
 #include "web.hrc"
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebDocShell
 #include "swslots.hxx"
 
diff --git a/sw/source/uibase/web/wformsh.cxx b/sw/source/uibase/web/wformsh.cxx
index 2d1c24f..6daf302 100644
--- a/sw/source/uibase/web/wformsh.cxx
+++ b/sw/source/uibase/web/wformsh.cxx
@@ -33,6 +33,9 @@
 #include "popup.hrc"
 #include "shells.hrc"
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebDrawFormShell
 #include "swslots.hxx"
 
diff --git a/sw/source/uibase/web/wfrmsh.cxx b/sw/source/uibase/web/wfrmsh.cxx
index cb49a40..f455f57 100644
--- a/sw/source/uibase/web/wfrmsh.cxx
+++ b/sw/source/uibase/web/wfrmsh.cxx
@@ -31,6 +31,9 @@
 #include "web.hrc"
 
 // STATIC DATA
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebFrameShell
 #include <sfx2/msg.hxx>
 #include "swslots.hxx"
diff --git a/sw/source/uibase/web/wgrfsh.cxx b/sw/source/uibase/web/wgrfsh.cxx
index 24e83a5..58a32bd 100644
--- a/sw/source/uibase/web/wgrfsh.cxx
+++ b/sw/source/uibase/web/wgrfsh.cxx
@@ -35,6 +35,9 @@
 #include "web.hrc"
 #include "wgrfsh.hxx"
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebGrfShell
 #include "swslots.hxx"
 
diff --git a/sw/source/uibase/web/wlistsh.cxx b/sw/source/uibase/web/wlistsh.cxx
index ad487d4..e41c8ad 100644
--- a/sw/source/uibase/web/wlistsh.cxx
+++ b/sw/source/uibase/web/wlistsh.cxx
@@ -31,6 +31,9 @@
 #include "uinums.hxx"
 #include "wlistsh.hxx"
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebListShell
 #include "swslots.hxx"
 
diff --git a/sw/source/uibase/web/wtabsh.cxx b/sw/source/uibase/web/wtabsh.cxx
index c42fab2..a50e566 100644
--- a/sw/source/uibase/web/wtabsh.cxx
+++ b/sw/source/uibase/web/wtabsh.cxx
@@ -33,6 +33,9 @@
 #include "wrtsh.hxx"
 #include "wtabsh.hxx"
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebTableShell
 #include <sfx2/msg.hxx>
 #include "svx/svxids.hrc"
diff --git a/sw/source/uibase/web/wtextsh.cxx b/sw/source/uibase/web/wtextsh.cxx
index b45bdc1..a572f85 100644
--- a/sw/source/uibase/web/wtextsh.cxx
+++ b/sw/source/uibase/web/wtextsh.cxx
@@ -37,6 +37,9 @@
 #include <unomid.h>
 
 // STATIC DATA
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebTextShell
 #include <sfx2/msg.hxx>
 #include "swslots.hxx"
diff --git a/sw/source/uibase/web/wview.cxx b/sw/source/uibase/web/wview.cxx
index c8dffd7..eff5f9b 100644
--- a/sw/source/uibase/web/wview.cxx
+++ b/sw/source/uibase/web/wview.cxx
@@ -60,6 +60,9 @@
 #include <web.hrc>
 #include <shells.hrc>
 
+#include <sfx2/request.hxx>
+    // needed for -fsanitize=function visibility of typeinfo for functions of
+    // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
 #define SwWebView
 #define Text
 #define TextInTable
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 95e8bf2..6bbcb29 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -34,11 +34,13 @@
 #include <rtl/ustring.hxx>
 #include <vcl/keycod.hxx>
 
+#include <vcl/window.hxx>
+    // complete vcl::Window for SalFrame::CallCallback under -fsanitize=function
+
 class AllSettings;
 class SalGraphics;
 class SalBitmap;
 class SalMenu;
-namespace vcl { class Window; }
 
 struct SalFrameState;
 struct SalInputContext;
diff --git a/vcl/inc/unx/desktops.hxx b/vcl/inc/unx/desktops.hxx
index babb168..e88c473 100644
--- a/vcl/inc/unx/desktops.hxx
+++ b/vcl/inc/unx/desktops.hxx
@@ -20,7 +20,11 @@
 #ifndef INCLUDED_VCL_INC_UNX_DESKTOPS_HXX
 #define INCLUDED_VCL_INC_UNX_DESKTOPS_HXX
 
-enum DesktopType {
+#include <sal/config.h>
+
+#include <sal/types.h>
+
+enum SAL_DLLPUBLIC_RTTI DesktopType {
     DESKTOP_NONE, // headless, i.e. no X connection at all
     DESKTOP_UNKNOWN, // unknown desktop, simple WM, etc.
     DESKTOP_GNOME,
diff --git a/vcl/source/components/dtranscomp.cxx b/vcl/source/components/dtranscomp.cxx
index 5b443e2..05a1490 100644
--- a/vcl/source/components/dtranscomp.cxx
+++ b/vcl/source/components/dtranscomp.cxx
@@ -25,6 +25,7 @@
 #include "svdata.hxx"
 #include "salinst.hxx"
 
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include "com/sun/star/lang/XServiceInfo.hpp"
 #include "com/sun/star/lang/XSingleServiceFactory.hpp"
 #include "com/sun/star/lang/XInitialization.hpp"
diff --git a/vcl/source/components/fontident.cxx b/vcl/source/components/fontident.cxx
index e5880d3..a7e6f36 100644
--- a/vcl/source/components/fontident.cxx
+++ b/vcl/source/components/fontident.cxx
@@ -23,6 +23,7 @@
 #include "factory.hxx"
 #include "svdata.hxx"
 
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/beans/XMaterialHolder.hpp>
 #include <com/sun/star/awt/FontDescriptor.hpp>
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index f854708..9276445 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -52,6 +52,7 @@
 #include <algorithm>
 
 #include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XServiceName.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx
index a72dced..67df987 100644
--- a/xmloff/source/draw/animationimport.cxx
+++ b/xmloff/source/draw/animationimport.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <xmloff/unointerfacetouniqueidentifiermapper.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
 #include <com/sun/star/animations/AnimationTransformType.hpp>
diff --git a/xmloff/source/meta/MetaImportComponent.cxx b/xmloff/source/meta/MetaImportComponent.cxx
index 217cc66..0e27109 100644
--- a/xmloff/source/meta/MetaImportComponent.cxx
+++ b/xmloff/source/meta/MetaImportComponent.cxx
@@ -23,6 +23,7 @@
 #include <xmloff/xmltoken.hxx>
 #include <xmloff/xmlmetai.hxx>
 #include <xmloff/nmspmap.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <comphelper/processfactory.hxx>
 
 using namespace ::com::sun::star;
diff --git a/xmloff/source/transform/OOo2Oasis.cxx b/xmloff/source/transform/OOo2Oasis.cxx
index b944dcc..6ec9363 100644
--- a/xmloff/source/transform/OOo2Oasis.cxx
+++ b/xmloff/source/transform/OOo2Oasis.cxx
@@ -19,6 +19,7 @@
 
 #include <rtl/ustrbuf.hxx>
 #include <osl/diagnose.h>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/servicehelper.hxx>
 #include <sax/tools/converter.hxx>
diff --git a/xmloff/source/transform/Oasis2OOo.cxx b/xmloff/source/transform/Oasis2OOo.cxx
index 519f39d..461b877 100644
--- a/xmloff/source/transform/Oasis2OOo.cxx
+++ b/xmloff/source/transform/Oasis2OOo.cxx
@@ -18,6 +18,7 @@
  */
 
 #include <com/sun/star/beans/XPropertySetInfo.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
 #include <rtl/ustrbuf.hxx>
 #include <sax/tools/converter.hxx>
 #include <xmloff/nmspmap.hxx>


More information about the Libreoffice-commits mailing list