summaryrefslogtreecommitdiff
path: root/emfio/source/reader/emfreader.cxx
AgeCommit message (Collapse)Author
2020-11-17tdf#35986 EMF import: Add support for PS_COSMETIC line style in CREATEPENBartosz Kosiorek
When the PS_COSMETIC line style is set in CREATEPEN, line width should be set to one logical unit and a style that is a solid color This patch is fixing that, allowing to properly import EMF file. The corresponding unit tests were added Change-Id: I1a0caf6382d9c313d9725d0b94e2fcd37122a099 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105790 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105944
2020-09-21[API CHANGE] tdf#136836 emfio: set size hint on inner PDF if used as shape fillMiklos Vajna
The bugdoc has a shape, its bitmap fill is an EMF, which is actually a PDF. The PDF is has a height of 5cm, but the shape has a height of 14 cm. Inform vcl::RenderPDFBitmaps() about the size of the shape, so the result won't be blurry. This approach makes sure that we don't unconditionally render at higher resolution, i.e. the "load a PDF of 100 pages into Online" use-case won't use more memory than before. API CHANGE, because the EMF reader is only available via UNO, though it's likely that no actual external code would ever invoke it directly. (cherry picked from commit 01024ee24c6e89044c68051f6fd5f1264905e90c) Conflicts: include/vcl/vectorgraphicdata.hxx vcl/source/gdi/vectorgraphicdata.cxx Change-Id: If1d8def0136d408a31a0cc54777a7f26430a0ff3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103087 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
2020-09-21tdf#136836 emfio: speed up import of EMF import when the orig PDF is availableMiklos Vajna
The PPTX bugdoc has a 17MB EMF file, which has enough instructions to keep Impress busy for minutes during import. Take advantage of the detail that this EMF has a EMR_COMMENT_MULTIFORMATS record that contains the original PDF, which can be rendered much faster: - old cost: 122.153 seconds - new cost: 1.952 seconds (1.6% of baseline) (cherry picked from commit d75c5b38911557173c54a78f42ff220ab3918573) Change-Id: I38efc1c24e21a7622377b9e1c1938ebee826bae9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103086 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
2020-05-31tdf#133448 tdf#133435 ignore broken rectangles so can we load dodgy EMF/WMFNoel Grandin
regression from commit 059f07f9f33460c809a93e0fda1165f5c6f6d805 fixes for code creating reversed Rectangles Change-Id: Ia4d41ac6845afcae3da1c259d8fbf48aa7db3489 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95165 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 5f260ecaddbd2b93de18f5223a7a732bcff280d9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95230
2020-04-16fixes for code creating reversed RectanglesNoel Grandin
ie. where left > right or top > bottom These are all places where the code is self-evidently doing the wrong thing. Found by adding asserts to tools::Rectangle. In theory, this is legit, and code that wants a proper Rectangle is supposed to be first call Justify on a Rectangle, but lots of places don't do that, and that seems very dodgy to me. So lets work towards Rectangles always being in a valid state. Change-Id: I03296a624bd9b5b193e6aa8778addfb09708cdc7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92310 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14loplugin:flatten in embeddedobj,emfioNoel Grandin
Change-Id: Ibaf5e1a4db1088322cf8c5e127d328b140406197 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92196 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-20fix constants according to [MS-EMF] 2.1.10Andras Timar
Change-Id: I048eb097e9570f2ad2fecef5e725c98e36e6559e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87078 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com>
2019-12-20tdf#42949 Fix IWYU warnings in emfio/Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I644bbebe798329e68665b8c751eccbb829178e91 Reviewed-on: https://gerrit.libreoffice.org/85182 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-12-19sal_Char->char in editeng..eventattacherNoel Grandin
Change-Id: Ia9c736042a07a17377db6d88c5bcd2b468e98777 Reviewed-on: https://gerrit.libreoffice.org/85471 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-04vcl: fix number of polygons shown in SAL_INFO messageChris Sherlock
Change-Id: I9a2c28f465b881583caae8d865d63b701213f8ee Reviewed-on: https://gerrit.libreoffice.org/84139 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-11-30tdf#129106 vcl: add SAL_INFO to show the dxArray intercharacter spacingsChris Sherlock
Change-Id: I948555cb4895390ded8b6c9b257486cdce175185 Reviewed-on: https://gerrit.libreoffice.org/84096 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-11-23emfio: extra loggingChris Sherlock
For emfio I believe we need more logging, so I am gradually adding this. I decided to log the EMR_COMMENT_PUBLIC record subtypes EMR_COMMENT_BEGINGROUP and EMR_COMMENT_ENDGROUP. I honestly don't know what these actually do, but they are specified in [MS-EMF] 2.3.3.4.1 and 2.3.3.4.2. Later on, we will need to look into handling EMR_COMMENT_MULTIFORMATS so we can display things with EPS data. We should also probably look into handling EMR_COMMENT_WINDOWS_METAFILE later on also. Change-Id: I7c3ba3cfd7f51a6cff2c7a47a48dde12240d0382 Reviewed-on: https://gerrit.libreoffice.org/83407 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-11-20emfio: add SAL_WARNs for unimplemented EMR_COMMENTsChris Sherlock
Change-Id: I449a0c2db77888a87a0ae983617848a9f0886ef1 Reviewed-on: https://gerrit.libreoffice.org/83233 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-06-22Resolves; ofz#15426 Integer-overflowCaolán McNamara
Change-Id: I43ac26058a98a85fc09321a93e29dbeb151f5069 Reviewed-on: https://gerrit.libreoffice.org/74572 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-26Avoid manual malloc/freeStephan Bergmann
Change-Id: I7420dfde91ab52316139b446ea5c5aac79ed2350 Reviewed-on: https://gerrit.libreoffice.org/71380 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-03-08new loplugin constvarsNoel Grandin
detect static variables that can be made const. Thanks to mike kaganski for suggesting this. Here I introduce a new plugin feature - using markers in nearby comments to disable the plugin for specific vars. Some of this stuff was old debugging code. I removed the stuff that was older than 5 years. Change-Id: I6ec7742a7fdadf28fd128b592fcdf6da8257585c Reviewed-on: https://gerrit.libreoffice.org/68807 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-05Assume that EMR_SETVIEWPORTEXTEX wants to read signed valuesStephan Bergmann
...similar to 095e1ca4372d90da7fc56051f1271ddd975a9e3a "Assume that EMR_SETWINDOWEXTEX wants to read signed values", this time causing "implicit conversion from type 'long' of value 4294967200 (64-bit, signed) to type 'sal_Int32' (aka 'int') changed the value to -96 (32-bit, signed)" in emfio::MtfTools::SetDevExt (emfio/source/reader/mtftools.cxx) during CppunitTest_sw_rtfexport2. Change-Id: I114cc883fd3ac78291df8190b8528384966b563f Reviewed-on: https://gerrit.libreoffice.org/68709 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-02-08loplugin:indentation in editeng..extensionsNoel Grandin
Change-Id: If7d7c400fb5d24e48b6cd02b364a8ac7fa23505d Reviewed-on: https://gerrit.libreoffice.org/67538 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-01-21o3tl::make_unique -> std::make_unique in dbaccess...frameworkGabor Kelemen
Since it is now possible to use C++14, it's time to replace the temporary solution with the standard one Change-Id: Iad5a422bc5a7da43d905edc91d1c46793332ec5e Reviewed-on: https://gerrit.libreoffice.org/66545 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-12-08Remove obsolete SAL_FALLTHROUGH completelyStephan Bergmann
...after 7ffdd830d5fb52f2ca25aa80277d22ea6d89970b "HAVE_CPP_ATTRIBUTE_FALLTHROUGH is always true now" Change-Id: I54e5ff4e036a6bb3e5774d1c0524158aae18e937 Reviewed-on: https://gerrit.libreoffice.org/64800 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-19tdf#42949 Fix IWYU warnings in include/vcl/[ab]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If18c80fc64e55d797953e24e40e5d5e62bd9c625 Reviewed-on: https://gerrit.libreoffice.org/63453 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-09-17New loplugin:externalStephan Bergmann
...warning about (for now only) functions and variables with external linkage that likely don't need it. The problems with moving entities into unnamed namespacs and breaking ADL (as alluded to in comments in compilerplugins/clang/external.cxx) are illustrated by the fact that while struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } returns 1, both moving just the struct S2 into an nunnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { namespace { struct S2: S1 { int f() { return 1; } }; } int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } as well as moving just the function f overload into an unnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; namespace { int f(S2 s) { return s.f(); } } } int main() { return f(N::S2()); } would each change the program to return 0 instead. Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c Reviewed-on: https://gerrit.libreoffice.org/60539 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-14Assume that EMR_SETWINDOWEXTEX wants to read signed valuesStephan Bergmann
...rather than unsigned ones. With Clang's new -fsanitize=implicit-conversion, CppunitTest_vcl_filters_test fails in a way (see below) suggesting that it wants to read a negative sal_Int32 value here (that naturally extends to the same negative value of type long when constructing the Size instance) instead of a large unsigned sal_uInt32 value (that extends to a large positive (64-bit) long value). The code is like that effectively ever since its introduction with c7470f5be441d8fe80155ff29605d74d5838be26 "emfplus: add rough version of local reader". (In case that's relevant, <https://docs.microsoft.com/en-us/windows/ desktop/api/wingdi/nf-wingdi-setwindowextex> documents the SetWindowExtEx function as taking x and y parameters of (signed) int type.) > Testing file:///home/sbergman/lo/core/vcl/qa/cppunit/graphicfilter/data/wmf/fail/facename-1.wmf: > emfio/source/reader/mtftools.cxx:1961:33: runtime error: implicit conversion from type 'long' of value 2273774060 (64-bit, signed) to type 'sal_Int32' (aka 'int') changed the value to -2021193236 (32-bit, signed) > #0 in emfio::MtfTools::SetWinExt(Size const&, bool) at emfio/source/reader/mtftools.cxx:1961:33 (instdir/program/libemfiolo.so +0xedacd) > #1 in emfio::EmfReader::ReadEnhWMF() at emfio/source/reader/emfreader.cxx:754:25 (instdir/program/libemfiolo.so +0x152e99) > #2 in emfio::WmfReader::ReadWMF() at emfio/source/reader/wmfreader.cxx:1434:57 (instdir/program/libemfiolo.so +0x12f7ac) > #3 in emfio::emfreader::XEmfParser::getDecomposition(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at emfio/source/emfuno/xemfparser.cxx:149:104 (instdir/program/libemfiolo.so +0xb14bc) > #4 in non-virtual thunk to emfio::emfreader::XEmfParser::getDecomposition(com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&, rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) at emfio/source/emfuno/xemfparser.cxx (instdir/program/libemfiolo.so +0xb1e22) > #5 in VectorGraphicData::ensureSequenceAndRange() at vcl/source/gdi/vectorgraphicdata.cxx:171:137 (instdir/program/libvcllo.so +0x49121b2) > #6 in VectorGraphicData::getRange() const at vcl/source/gdi/vectorgraphicdata.cxx:273:45 (instdir/program/libvcllo.so +0x4912c4e) > #7 in VclFiltersTest::load(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int) at vcl/qa/cppunit/graphicfilter/filters-test.cxx:78:46 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x18010) > #8 in test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:130:20 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x5724c) > #9 in test::FiltersTest::testDir(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, SfxFilterFlags, SotClipboardFormatId, unsigned int, bool) at unotest/source/cpp/filters-test.cxx:158:5 (workdir/LinkTarget/CppunitTest/../Library/libunotest.so +0x580e7) > #10 in VclFiltersTest::testCVEs() at vcl/qa/cppunit/graphicfilter/filters-test.cxx:149:5 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x1a30f) > #11 in void std::__invoke_impl<void, void (VclFiltersTest::*&)(), VclFiltersTest*&>(std::__invoke_memfun_deref, void (VclFiltersTest::*&)(), VclFiltersTest*&) at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/invoke.h:73:14 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2c0bd) > #12 in std::__invoke_result<void (VclFiltersTest::*&)(), VclFiltersTest*&>::type std::__invoke<void (VclFiltersTest::*&)(), VclFiltersTest*&>(void (VclFiltersTest::*&)(), VclFiltersTest*&) at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/invoke.h:95:14 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2bd5b) > #13 in void std::_Bind<void (VclFiltersTest::* (VclFiltersTest*))()>::__call<void, 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/functional:400:11 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2bc08) > #14 in void std::_Bind<void (VclFiltersTest::* (VclFiltersTest*))()>::operator()<void>() at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/functional:482:17 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2b945) > #15 in std::_Function_handler<void (), std::_Bind<void (VclFiltersTest::* (VclFiltersTest*))()> >::_M_invoke(std::_Any_data const&) at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/std_function.h:297:2 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2aa56) > #16 in std::function<void ()>::operator()() const at /usr/lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/std_function.h:687:14 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x2c656) > #17 in CppUnit::TestCaller<VclFiltersTest>::runTest() at workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:175:7 (workdir/LinkTarget/CppunitTest/libtest_vcl_filters_test.so +0x29ec6) > #18 in CppUnit::TestCaseMethodFunctor::operator()() const at workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22c1f1) > #19 in (anonymous namespace)::Protector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) at test/source/vclbootstrapprotector.cxx:49:14 (workdir/LinkTarget/Library/libvclbootstrapprotector.so +0x159a) > #20 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const at workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x20e64d) > #21 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) at unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:88:12 (workdir/LinkTarget/Library/unobootstrapprotector.so +0x987a) > #22 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const at workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x20e64d) > #23 in (anonymous namespace)::Prot::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) at unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16 (workdir/LinkTarget/Library/unoexceptionprotector.so +0x5000) > #24 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const at workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x20e64d) > #25 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) at workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x1c6c51) > #26 in CppUnit::ProtectorChain::ProtectFunctor::operator()() const at workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:25 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x20e64d) > #27 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) at workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:86:18 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x2096b8) > #28 in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:182:28 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x26c3e4) > #29 in CppUnit::TestCase::run(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:13 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22b1fb) > #30 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22db43) > #31 in CppUnit::TestComposite::run(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22d119) > #32 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:30 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22db43) > #33 in CppUnit::TestComposite::run(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x22d119) > #34 in CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:27 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x28b6c2) > #35 in CppUnit::TestResult::runTest(CppUnit::Test*) at workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:149:9 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x26b715) > #36 in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) at workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:14 (workdir/UnpackedTarball/cppunit/src/cppunit/.libs/libcppunit-1.14.so.0 +0x28c103) > #37 in (anonymous namespace)::ProtectedFixtureFunctor::run() const at sal/cppunittester/cppunittester.cxx:316:20 (workdir/LinkTarget/Executable/cppunittester +0x440697) > #38 in sal_main() at sal/cppunittester/cppunittester.cxx:466:20 (workdir/LinkTarget/Executable/cppunittester +0x43e2fc) > #39 in main at sal/cppunittester/cppunittester.cxx:373:1 (workdir/LinkTarget/Executable/cppunittester +0x43d90e) > #40 in __libc_start_main at /usr/src/debug/glibc-2.27-74-g68c1bf8097/csu/../csu/libc-start.c:308:16 (/lib64/libc.so.6 +0x2324a) > #41 in _start at <null> (workdir/LinkTarget/Executable/cppunittester +0x4172a9) Change-Id: Ia3899d2e80f9dc22329f7739a0c2be3cb465e967 Reviewed-on: https://gerrit.libreoffice.org/58940 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com>
2018-08-01Add missing sal/log.hxx headersGabor Kelemen
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx> (and don't make use of it themselves), but many other files happen to depend on it. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories from dbaccess to extensions Change-Id: I4d15aa35e11664ef78c836ffc2937c7e0bb6ea59 Reviewed-on: https://gerrit.libreoffice.org/58165 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-04-07Revert "long->sal_Int32 in tools/gen.hxx"Stephan Bergmann
This reverts commit 8bc951daf79decbd8a599a409c6d33c5456710e0. As discussed at <https://lists.freedesktop.org/archives/libreoffice/2018-April/079955.html> "long->sal_Int32 in tools/gen.hxx", that commit caused lots of problems with signed integer overflow, and the original plan was to redo it to consistently use sal_Int64 instead of sal_Int32. <https://gerrit.libreoffice.org/#/c/52471/> "sal_Int32->sal_Int64 in tools/gen.hxx" tried that. However, it failed miserably on Windows, causing odd failures like not writing out Pictures/*.svm streams out into .odp during CppunitTest_sd_export_ooxml2. So the next best approach is to just revert the original commit, at least for now. Includes revert of follow-up 8c50aff2175e85c54957d98ce32af40a3a87e168 "Fix Library_vclplug_qt5". Change-Id: Ia8bf34272d1ed38aac00e5d07a9d13fb03f439ae Reviewed-on: https://gerrit.libreoffice.org/52532 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-04-05ofz#7359 Integer overflowCaolán McNamara
Change-Id: I9c857f7fb8fbfceb9e061fd0bc1f0b0b63b35524 Reviewed-on: https://gerrit.libreoffice.org/52401 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-04-03long->sal_Int32 in tools/gen.hxxNoel Grandin
which triggered a lot of changes in sw/ Change-Id: Ia2aa22ea3f76463a85ea077a411246fcfed00bf6 Reviewed-on: https://gerrit.libreoffice.org/48806 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-14loplugin:changetoolsgen in editeng..extensionsNoel Grandin
Change-Id: I476fd8b988216a300c57fcf184ea3742139363fe Reviewed-on: https://gerrit.libreoffice.org/49656 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-08ofz: timeoutCaolán McNamara
Change-Id: Ia99ce4efe5ad7740f1cae7afcc199bc164b760ca Reviewed-on: https://gerrit.libreoffice.org/49418 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-01-31tweak clippath fuzzing pathCaolán McNamara
Change-Id: Iebcf12eec5cf5282e798ff5d4fe6649e3a8eea3f
2018-01-15More loplugin:cstylecast: emfioStephan Bergmann
Change-Id: I52e540bdd8ba0090dec752deb7b1fa5c67ae3c85
2018-01-13loplugin:useuniqueptr in PolyPolygonNoel Grandin
Also - convert to o3tl::cow_wrapper - drop the second param to the constructor and just let vector use it's own resize logic - bump MAX_POLYGONS from 0x3FF0 to 0xffff so that the ios2met filter can load it's files properly. Change-Id: I9db19e4f7b4f946e801ea07c31d2d0ded7837a0e Reviewed-on: https://gerrit.libreoffice.org/47789 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-12More loplugin:cstylecast: emfioStephan Bergmann
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable loplugin:cstylecast for some more cases" plus solenv/clang-format/reformat-formatted-files Change-Id: Idffd3ef04b007f04b7022e54881254da9b2aa4a0
2018-01-06ofz#4980 bail early with 0 pointsCaolán McNamara
even if start is 1 of 0 Change-Id: I7e6ad8bcd20f160e08d8795aa38e52fe3aa3cbee Reviewed-on: https://gerrit.libreoffice.org/47515 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-11-20ofz#4318 Integer-overflowCaolán McNamara
Change-Id: I7ad1f39d82e44e4fa8dd78700b25deea0c19c81a Reviewed-on: https://gerrit.libreoffice.org/44913 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-11-14ofz: stop at min of end of record and end of streamCaolán McNamara
Change-Id: I61c7cf74ea75ec56b6ccb3661f6fdd54a1ff12e1 Reviewed-on: https://gerrit.libreoffice.org/44705 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-11-01ofz#3939 Integer-overflowCaolán McNamara
Change-Id: Ic35cf6dd77d536ba3ab486b1c752d81037fe7cae Reviewed-on: https://gerrit.libreoffice.org/44103 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-11-01ofz#3951 Integer-overflowCaolán McNamara
Change-Id: I30a6b7c00cc7895ed4c307fe0bbe685bd29217ed Reviewed-on: https://gerrit.libreoffice.org/44121 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-29ofz#3868 Integer-overflowCaolán McNamara
Change-Id: Id5de484e365567487cdeaf73f9fa88ef5a735e3e Reviewed-on: https://gerrit.libreoffice.org/44011 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-27tdf#111486 Fix description of SAL_ macro after EMF refactorBartosz Kosiorek
Change-Id: Ia4530d987e8555a5c09d49492e09079a3710b53b Reviewed-on: https://gerrit.libreoffice.org/43838 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-27emfio: don't reinvent read_uInt16s_ToOUStringMichael Stahl
Change-Id: Ib12923762b5dd4d255c89a5acc54fdc5678a58ed
2017-10-27remove GetSwapFloat nonsense from all 3 EMF readersMichael Stahl
SvStream::ReadFloat already does that, and SvStream is initialised to SvStreamEndian::LITTLE by default. Change-Id: I5859e43014533bcebef9d4b8f0678c516193b92e
2017-10-26tdf#31814 EMF/EMF+ implement dual modePatrick Jaap
There can be a dual mode flag set in the EMF+ data. If set, we should process either EMF or EMF+ data, because the contained information should be equal (says the documentation). The more advanced EMF+ renderer is chosen here. The flag is read in the EMFPlusReader and blocks the reading of other EMF records than HEADER, EOF and COMMENT. Thanks to Chris, for pointing out the dual mode! Change-Id: I8522930cebbb9e9ecc732397cbb3deea9e8c9127 Reviewed-on: https://gerrit.libreoffice.org/43122 Reviewed-by: Patrick Jaap <patrick.jaap@tu-dresden.de> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl> Tested-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2017-10-25ofz#3776 Divide-by-zeroCaolán McNamara
Change-Id: I2de2bfd6165a53d05e9f222908f6764a608004c3 Reviewed-on: https://gerrit.libreoffice.org/43813 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-25ofz#3763 Integer-overflowCaolán McNamara
Change-Id: If7c10d0fd188f0aafeece9545fb138761c3a2f5b Reviewed-on: https://gerrit.libreoffice.org/43765 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-10-21check seek to end of header succeededCaolán McNamara
and some other checks Change-Id: I3576a9019329d23d4ce17787cbc03149fbcc475e Reviewed-on: https://gerrit.libreoffice.org/43663 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-30ofz+ubsanCaolán McNamara
Change-Id: I03f4bae4dd35eea9b5d3996e0655ca9a2ccd6a5f Reviewed-on: https://gerrit.libreoffice.org/42944 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-23ofz#2956: Conditional jump or move depends on uninitialised valueCaolán McNamara
Change-Id: I399c2eb2379b23568dda83f9d41473858f33a802 Reviewed-on: https://gerrit.libreoffice.org/42699 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-08-13ofz#3028: use of uninitialized valuesCaolán McNamara
Change-Id: I87bf37e4ae559c8057ac34b7d6dea52cf9468540 Reviewed-on: https://gerrit.libreoffice.org/41114 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-07-15emfplus: more corrections due to linux buildArmin Le Grand
Change-Id: Ib2c3bff23043638d315405b5a91b2596e92f7ffa