summaryrefslogtreecommitdiff
path: root/emfio/inc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-07-17 02:53:08 +0200
committerStephan Bergmann <sbergman@redhat.com>2017-07-17 14:18:24 +0200
commit29cdfa3fc337381e2529eaac2a551137ee8a1aaa (patch)
tree628d9e2bf860222c8a80e4b9c0049aab6b6081d3 /emfio/inc
parent8134fb802635f3798eb72e414450b64409de5ef9 (diff)
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@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'emfio/inc')
-rw-r--r--emfio/inc/emfiodllapi.h33
-rw-r--r--emfio/inc/mtftools.hxx9
2 files changed, 40 insertions, 2 deletions
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;