diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2017-07-17 02:53:08 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-07-17 14:18:24 +0200 |
commit | 29cdfa3fc337381e2529eaac2a551137ee8a1aaa (patch) | |
tree | 628d9e2bf860222c8a80e4b9c0049aab6b6081d3 /emfio/inc | |
parent | 8134fb802635f3798eb72e414450b64409de5ef9 (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.h | 33 | ||||
-rw-r--r-- | emfio/inc/mtftools.hxx | 9 |
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; |