[Libreoffice-commits] core.git: emfio/CppunitTest_emfio_emf_test.mk emfio/CppunitTest_emfio_wmf_test.mk emfio/inc emfio/Library_emfio.mk

Markus Mohrhard markus.mohrhard at googlemail.com
Mon Jul 17 12:19:02 UTC 2017


 emfio/CppunitTest_emfio_emf_test.mk |   14 ++------------
 emfio/CppunitTest_emfio_wmf_test.mk |    8 ++------
 emfio/Library_emfio.mk              |    4 ++++
 emfio/inc/emfiodllapi.h             |   33 +++++++++++++++++++++++++++++++++
 emfio/inc/mtftools.hxx              |    9 +++++++--
 5 files changed, 48 insertions(+), 20 deletions(-)

New commits:
commit 29cdfa3fc337381e2529eaac2a551137ee8a1aaa
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Mon Jul 17 02:53:08 2017 +0200

    no need to statically link against the emfio library in the tests
    
    ODR-violation found by ASAN:
    
    ==17022==ERROR: AddressSanitizer: odr-violation (0x2b86adb17c60):
      [1] size=352 'vtable for emfio::emfreader::XEmfParser' /home/tdf/lode/jenkins/workspace/lo_ubsan/emfio/source/emfuno/xemfparser.cxx
      [2] size=352 'vtable for emfio::emfreader::XEmfParser' /home/tdf/lode/jenkins/workspace/lo_ubsan/emfio/source/emfuno/xemfparser.cxx
    These globals were registered at these points:
      [1]:
        #0 0x443a73 in __asan_register_globals /home/tdf/lode/packages/llvm-3.8.0.src/projects/compiler-rt/lib/asan/asan_globals.cc:218
        #1 0x2b86bea2dced in asan.module_ctor (/workdir/LinkTarget/CppunitTest/libtest_emfio_wmf.so+0x1a0ced)
        #2 0x7fff394ad75a  (<unknown module>)
    
      [2]:
        #0 0x443a73 in __asan_register_globals /home/tdf/lode/packages/llvm-3.8.0.src/projects/compiler-rt/lib/asan/asan_globals.cc:218
        #1 0x2b86ad6e862d in asan.module_ctor (/workdir/LinkTarget/CppunitTest/libtest_emfio_emf.so+0x18862d)
        #2 0x7fff394ad75a  (<unknown module>)
    
    Change-Id: Id98677a3692ac6a0586164aa5d0a2c82ab26f916
    Reviewed-on: https://gerrit.libreoffice.org/40029
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Tested-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/emfio/CppunitTest_emfio_emf_test.mk b/emfio/CppunitTest_emfio_emf_test.mk
index 49cf14f90e51..d577398c4367 100644
--- a/emfio/CppunitTest_emfio_emf_test.mk
+++ b/emfio/CppunitTest_emfio_emf_test.mk
@@ -9,15 +9,7 @@
 
 $(eval $(call gb_CppunitTest_CppunitTest,emfio_emf))
 
-$(eval $(call gb_CppunitTest_set_componentfile,emfio_emf,emfio/emfio))
-
-$(eval $(call gb_CppunitTest_set_include,emfio_emf,\
-    $$(INCLUDE) \
-    -I$(SRCDIR)/emfio/inc \
-))
-
 $(eval $(call gb_CppunitTest_use_externals,emfio_emf,\
-    boost_headers \
     libxml2 \
 ))
 
@@ -27,16 +19,13 @@ $(eval $(call gb_CppunitTest_add_exception_objects,emfio_emf,\
 
 $(eval $(call gb_CppunitTest_use_sdk_api,emfio_emf))
 
-$(eval $(call gb_CppunitTest_use_library_objects,emfio_emf,\
-    emfio \
-))
-
 $(eval $(call gb_CppunitTest_use_libraries,emfio_emf,\
     basegfx \
     drawinglayer \
     cppu \
     cppuhelper \
     comphelper \
+    emfio \
     sal \
     svt \
     test \
@@ -52,6 +41,7 @@ $(eval $(call gb_CppunitTest_use_vcl,emfio_emf))
 $(eval $(call gb_CppunitTest_use_components,emfio_emf,\
     configmgr/source/configmgr \
     dtrans/util/mcnttype \
+    emfio/emfio \
     framework/util/fwk \
     i18npool/util/i18npool \
     package/source/xstor/xstor \
diff --git a/emfio/CppunitTest_emfio_wmf_test.mk b/emfio/CppunitTest_emfio_wmf_test.mk
index c24dd19acfef..b612f5c5a03b 100644
--- a/emfio/CppunitTest_emfio_wmf_test.mk
+++ b/emfio/CppunitTest_emfio_wmf_test.mk
@@ -9,8 +9,6 @@
 
 $(eval $(call gb_CppunitTest_CppunitTest,emfio_wmf))
 
-$(eval $(call gb_CppunitTest_set_componentfile,emfio_wmf,emfio/emfio))
-
 $(eval $(call gb_CppunitTest_set_include,emfio_wmf,\
     $$(INCLUDE) \
     -I$(SRCDIR)/emfio/inc \
@@ -28,10 +26,6 @@ $(eval $(call gb_CppunitTest_add_exception_objects,emfio_wmf, \
 
 $(eval $(call gb_CppunitTest_use_sdk_api,emfio_wmf))
 
-$(eval $(call gb_CppunitTest_use_library_objects,emfio_wmf, \
-    emfio \
-))
-
 $(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
     $(call gb_Helper_optional,BREAKPAD, \
                crashreport) \
@@ -40,6 +34,7 @@ $(eval $(call gb_CppunitTest_use_libraries,emfio_wmf,\
     cppu \
     cppuhelper \
     comphelper \
+    emfio \
     i18nlangtag \
     i18nutil \
     $(if $(filter OPENCL,$(BUILD_TYPE)),opencl) \
@@ -195,6 +190,7 @@ $(eval $(call gb_CppunitTest_use_ure,emfio_wmf))
 
 $(eval $(call gb_CppunitTest_use_components,emfio_wmf,\
     configmgr/source/configmgr \
+    emfio/emfio \
     i18npool/util/i18npool \
     ucb/source/core/ucb1 \
     unotools/util/utl \
diff --git a/emfio/Library_emfio.mk b/emfio/Library_emfio.mk
index ff209f5da3bf..f133d498c97d 100644
--- a/emfio/Library_emfio.mk
+++ b/emfio/Library_emfio.mk
@@ -25,6 +25,10 @@ $(eval $(call gb_Library_set_include,emfio,\
     -I$(SRCDIR)/emfio/inc \
 ))
 
+$(eval $(call gb_Library_add_defs,emfio,\
+	-DEMFIO_DLLIMPLEMENTATION \
+))
+
 $(eval $(call gb_Library_use_custom_headers,emfio,\
 	officecfg/registry \
 ))
diff --git a/emfio/inc/emfiodllapi.h b/emfio/inc/emfiodllapi.h
new file mode 100644
index 000000000000..8a7cac187f25
--- /dev/null
+++ b/emfio/inc/emfiodllapi.h
@@ -0,0 +1,33 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+#define INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+
+#include <sal/types.h>
+
+#if defined(EMFIO_DLLIMPLEMENTATION)
+#define EMFIO_DLLPUBLIC  SAL_DLLPUBLIC_EXPORT
+#else
+#define EMFIO_DLLPUBLIC  SAL_DLLPUBLIC_IMPORT
+#endif
+
+#endif // INCLUDED_EMFIO_INC_EMFIODLLAPI_H
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/emfio/inc/mtftools.hxx b/emfio/inc/mtftools.hxx
index 2d14d9cfe633..38fff789a053 100644
--- a/emfio/inc/mtftools.hxx
+++ b/emfio/inc/mtftools.hxx
@@ -30,6 +30,8 @@
 #include <vcl/outdevstate.hxx>
 #include <vcl/FilterConfigItem.hxx>
 
+#include "emfiodllapi.h"
+
 #define ERROR                   0
 #define NULLREGION              1
 #define COMPLEXREGION           3
@@ -298,7 +300,7 @@ namespace emfio
         virtual ~GDIObj() = default; // Polymorphic base class
     };
 
-    struct WinMtfFontStyle : GDIObj
+    struct EMFIO_DLLPUBLIC WinMtfFontStyle : GDIObj
     {
         vcl::Font    aFont;
 
@@ -438,8 +440,11 @@ namespace emfio
         {}
     };
 
-    class MtfTools
+    class EMFIO_DLLPUBLIC MtfTools
     {
+        MtfTools(MtfTools &) = delete;
+        void operator =(MtfTools) = delete;
+
     protected:
         WinMtfPathObj       maPathObj;
         WinMtfClipPath      maClipPath;


More information about the Libreoffice-commits mailing list