summaryrefslogtreecommitdiff
path: root/vcl/source/filter/graphicfilter.cxx
AgeCommit message (Collapse)Author
2020-06-06move GraphicReader class out of graph.hxxTomaž Vajngerl
Change-Id: Id78995bfb8e8308a388ed542690ad85e4d19ce12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88425 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit 203abaaaaa33e6631315c735f6d42ad2c088a973) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95615 Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2020-05-14Blind fix for Android Tinderbox buildMichael Weghorn
... which failed as follows, which looks related to commit 6d9a31a58c2b55c0caef10c8bbb3d75147c2476f ("android: Use the best speed compression as on iOS"), s. [1] for full log: 12883 [build CXX] vcl/source/pdf/XmpMetadata.cxx 12884 In file included from /home/android/lo/master-android-arm/vcl/source/filter/graphicfilter.cxx:24: 12885 In file included from /home/android/lo/master-android-arm/include/comphelper/processfactory.hxx:23: 12886 In file included from /home/android/lo/master-android-arm/include/com/sun/star/uno/Reference.hxx:28: 12887 In file included from /home/android/lo/master-android-arm/workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/uno/RuntimeException.hpp:8: 12888 In file included from /home/android/lo/master-android-arm/workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/uno/Exception.hpp:8: 12889 In file included from /home/android/lo/master-android-arm/workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/uno/XInterface.hpp:6: 12890 In file included from /home/android/lo/master-android-arm/workdir/UnoApiHeadersTarget/udkapi/comprehensive/com/sun/star/uno/XInterface.hdl:6: 12891 In file included from /home/android/lo/master-android-arm/include/com/sun/star/uno/Any.h:29: 12892 NEXT /home/android/lo/master-android-arm/include/cppu/unotype.hxx:296:16: error: no matching function for call to ´cppu_detail_getUnoType´ 12893 return cppu_detail_getUnoType(static_cast< T1 * >(0)); 12894 ^~~~~~~~~~~~~~~~~~~~~~ 12895 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:321:34: note: in instantiation of member function ´cppu::UnoType<int>::get´ requested here 12896 return ::cppu::UnoType< T >::get(); 12897 ^ 12898 /home/android/lo/master-android-arm/include/com/sun/star/uno/Any.hxx:276:34: note: in instantiation of function template specialization ´cppu::getTypeFavourUnsigned<int>´ requested here 12899 const Type & rType = ::cppu::getTypeFavourUnsigned(&value); 12900 ^ 12901 /home/android/lo/master-android-arm/vcl/source/filter/graphicfilter.cxx:2216:60: note: in instantiation of function template specialization ´com::sun::star::uno::operator<<=<int>´ requested here 12902 aFilterData[aFilterData.getLength() - 1].Value <<= 1; 12903 ^ 12904 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:120:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::cppu::UnoVoidType *´ for 1st argument 12905 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::cppu::UnoVoidType const *) { 12906 ^ 12907 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:125:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const bool *´ for 1st argument 12908 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER bool const *) { 12909 ^ 12910 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:130:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const sal_Bool *´ (aka ´const unsigned char *´) for 1st argument 12911 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER sal_Bool const *) { 12912 ^ 12913 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:135:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_Int8 *´ (aka ´const signed char *´) for 1st argument 12914 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int8 const *) { 12915 ^ 12916 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:140:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_Int16 *´ (aka ´const short *´) for 1st argument 12917 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int16 const *) { 12918 ^ 12919 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:145:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::cppu::UnoUnsignedShortType *´ for 1st argument 12920 cppu_detail_getUnoType( 12921 ^ 12922 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:155:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const sal_uInt16 *´ (aka ´const unsigned short *´) for 1st argument 12923 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER sal_uInt16 const *) { 12924 ^ 12925 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:161:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_Int32 *´ (aka ´const long *´) for 1st argument 12926 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int32 const *) { 12927 ^ 12928 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:166:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_uInt32 *´ (aka ´const unsigned long *´) for 1st argument 12929 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_uInt32 const *) { 12930 ^ 12931 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:172:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_Int64 *´ (aka ´const long long *´) for 1st argument 12932 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_Int64 const *) { 12933 ^ 12934 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:177:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::sal_uInt64 *´ (aka ´const unsigned long long *´) for 1st argument 12935 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::sal_uInt64 const *) { 12936 ^ 12937 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:183:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const float *´ for 1st argument 12938 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER float const *) { 12939 ^ 12940 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:188:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const double *´ for 1st argument 12941 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER double const *) { 12942 ^ 12943 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:193:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::cppu::UnoCharType *´ for 1st argument 12944 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::cppu::UnoCharType const *) { 12945 ^ 12946 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:200:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const sal_Unicode *´ (aka ´const char16_t *´) for 1st argument 12947 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER sal_Unicode const *) { 12948 ^ 12949 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:206:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const ::rtl::OUString *´ for 1st argument 12950 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::rtl::OUString const *) { 12951 ^ 12952 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:211:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const css::uno::Type *´ for 1st argument 12953 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER css::uno::Type const *) 12954 ^ 12955 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:217:1: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const css::uno::Any *´ for 1st argument 12956 cppu_detail_getUnoType(SAL_UNUSED_PARAMETER css::uno::Any const *) 12957 ^ 12958 NEXT /home/android/lo/master-android-arm/include/cppu/unotype.hxx:243:31: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const css::uno::Exception *´ for 1st argument 12959 inline css::uno::Type const & cppu_detail_getUnoType( 12960 ^ 12961 /home/android/lo/master-android-arm/include/cppu/unotype.hxx:249:31: note: candidate function not viable: no known conversion from ´T1 *´ (aka ´int *´) to ´const css::uno::XInterface *´ for 1st argument 12962 inline css::uno::Type const & cppu_detail_getUnoType( 12963 ^ 12964 NEXT /home/android/lo/master-android-arm/include/cppu/unotype.hxx:223:1: note: candidate template ignored: could not match ´UnoSequenceType<type-parameter-0-0>´ against ´int´ 12965 cppu_detail_getUnoType( 12966 ^ 12967 NEXT /home/android/lo/master-android-arm/include/cppu/unotype.hxx:236:1: note: candidate template ignored: could not match ´Sequence<type-parameter-0-0>´ against ´int´ 12968 cppu_detail_getUnoType( 12969 ^ 12970 NEXT /home/android/lo/master-android-arm/include/cppu/unotype.hxx:256:1: note: candidate template ignored: could not match ´Reference<type-parameter-0-0>´ against ´int´ 12971 cppu_detail_getUnoType( 12972 ^ 12973 NEXT 1 error generated. 12974 [build CXX] vcl/source/uitest/logger.cxx [1] https://tinderbox.libreoffice.org/cgi-bin/gunzip.cgi?tree=MASTER&full-log=1583961601.24939 Change-Id: I098c21bc492f734115ae0e91f095ef542851c2ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90352 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2020-05-14android: Use the best speed compression as on iOS.Jan Holesovsky
Change-Id: Ib2be570a924c6ac6e226f47e6b183975df1fca2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90258 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 07fb148971b6853c2020cea6660fa62d6caacb85) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90281 Tested-by: Jenkins
2019-10-24pdfium: Switch the condition for better readibility.Jan Holesovsky
Change-Id: I8acf1e98f032f6943b2e7d09ac276f0f1ac4b120 Reviewed-on: https://gerrit.libreoffice.org/81061 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 105d98caa70389c12ad4f9a2a2b7474a4be73aa2) Reviewed-on: https://gerrit.libreoffice.org/81326 Tested-by: Jenkins
2019-09-18remove unused crc functionality from ZCodecNoel Grandin
Change-Id: I3e57e815b538ad5749b4bab3d4ef8e295cbe116b Reviewed-on: https://gerrit.libreoffice.org/79098 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-23loplugin:returnconstval in vclNoel Grandin
Change-Id: Id4a0b460ba3c43e80b80ae6e2da9e40a6753e14c Reviewed-on: https://gerrit.libreoffice.org/77965 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-22loplugin:constmethod in vclNoel Grandin
Change-Id: I20545527b117c9562b91076b748fb3e2659d2497 Reviewed-on: https://gerrit.libreoffice.org/77944 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-15loplugin:sequenceloop in unoxml..vclNoel Grandin
Change-Id: Ic3c48ec4d86252b62d3dd25bbc198f7d7fb75e90 Reviewed-on: https://gerrit.libreoffice.org/77533 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-24tdf#42949 Fix IWYU warnings in vcl/source/[f-i]*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I9991a1f4d8dde51b38cf8d114e4fb69ff4a349ea Reviewed-on: https://gerrit.libreoffice.org/75248 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-07-04vcl lok: pre-load graphic librariesMiklos Vajna
This is needed to be able to load e.g. TIFF files in Online, which does not have code in the chroot since online.git commit ad21717498cc214d5d5d5c0ff378238552137e2f (Avoid copying most code into the chroot jail., 2018-03-10). Change-Id: Ib095191ee690d9da6269878a82b1c6995df50dfa Reviewed-on: https://gerrit.libreoffice.org/75077 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-06-18ofz#15335 avoid config during fuzzingCaolán McNamara
Change-Id: I7a0270fb36b4390ae2e8f365ace8e724938224c3 Reviewed-on: https://gerrit.libreoffice.org/74249 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-18Simplify Sequence iterations in vclArkadiy Illarionov
Use range-based loops or replace with comphelper or STL functions Change-Id: If046738084c2d13cc1eaea6a03aaf60b63f62767 Reviewed-on: https://gerrit.libreoffice.org/74104 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-11tdf#125591 DOC import: lazy-load metafiles with explicit sizeMiklos Vajna
Regression from commit 69b62cfcbd364d7f62142149c2f690104b217ca1 (tdf#125281 DOC import: fix size of lazy-loaded metafiles, 2019-05-27), the problem is that setting the preferred size of a Graphic swaps it in. Avoid this by extending ImportUnloadedGraphic(): if a size hint is provided, then that will be used instead of info from the graphic descriptor (which is usually only meaningful for bitmaps). This way we maintain the correct size and we're back to lazy-loading metafiles from binary MSO files as well. Change-Id: Ide12d12166110e98ea47b5347dd24fb203b22da3 Reviewed-on: https://gerrit.libreoffice.org/73798 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-06-04Fix "external" graphic filter code for the DISABLE_DYNLOADING caseTor Lillqvist
The DISABLE_DYNLOADING case in ImpFilterLibCacheEntry::GetImportFunction() had apparently been broken from the start, but nobody never noticed as the common formats (PNG, JPEG, GIF etc) use a more "internal"code path. The problem was noticed now with a TIFF image in a presentation. The fix for the import case seems to work, but I could not test the fix for the export case. Change-Id: Icbd33c7cb654136a562f18b06d5b0896e701bf3d
2019-05-22New loplugin:dataStephan Bergmann
...following up on 1453c2c8f13bac64ecd1981af7cebf1c421808ac "prefer vector::data to &vector[0]" Change-Id: I7c113747d92d144a521d49b89384dd8bf1215c01 Reviewed-on: https://gerrit.libreoffice.org/72765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-11change type detection to use GraphicFormatDetectorTomaž Vajngerl
ImpPeekGraphicFormat now uses GraphicFormatDetector for type detection. Change-Id: I4ef2c3c57f72466fcb8c56c64a30f00ad6421d25 Reviewed-on: https://gerrit.libreoffice.org/72137 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-05-10introduce graphic format detector (and basic metadata)Tomaž Vajngerl
Currently we detect a graphic format in a ImpPeekGraphicFormat method, which is called when reading a graphic from a stream. The code is quite convoluted and doesn't help with readability of graphicfilter.cxx Additionally there exists an detection code written for the UNO class GraphicDescriptor, which duplicates the detection, but can in addition also extract other metadata at the same time. This introduces the initial implementation of GraphicFormatDetector class. It will first replace the code in ImpPeekGraphicFormat to detect the graphic format and then later also be extended to do what the GraphicDescriptor is doing. But currently it only duplicates the implementation of ImpPeekGraphicFormat. The problem with both of the current solution is that there are not any tests written. For the GraphicFormatDetector however the approach is to add test cases to check the current implementation and only then refactor the code. Change-Id: Idb9d3859b4380e3f15237d97aff969ce81e631dd Reviewed-on: https://gerrit.libreoffice.org/72086 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-04-27ofz#14469 null derefCaolán McNamara
since... commit af84fc9d906626255aaf136eefc5e55236e0e8a6 Date: Tue Apr 23 15:48:41 2019 +0200 lazy image loading shouldn't read the entire .xls file (tdf#124828) nLength is just an unchecked value in the dff stream, it might not be sane so limit it to the max len of the stream Change-Id: Ia8a2830478952afe1317b5cd795f35059d9b380a Reviewed-on: https://gerrit.libreoffice.org/71412 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-04-24lazy image loading shouldn't read the entire .xls file (tdf#124828)Luboš Luňák
b11188835d3b87cd changed msfilter to use GraphicFilter::ImportUnloadedGraphic() to lazy-load images from the document. However, that function in some cases simply reads the entire rest of the passed SvStream, which in this case is the entire .xls file. And the document from tdf#124828 is ~50MiB and contains ~4000 images => 100+ GiB memory required. Change-Id: I74926383204ec642eabb28b62e2cf2e1ff8054a9 Reviewed-on: https://gerrit.libreoffice.org/71136 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-04-15loplugin:sequentialassign in vclNoel Grandin
Change-Id: I530b81b3258a6e1c1456da53bfe1285f14aee712 Reviewed-on: https://gerrit.libreoffice.org/70734 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-28simplify reset(nullptr) -> reset()Noel Grandin
Change-Id: Iec5e93d9c59dde44571376e46fb98ea854e16b6c Reviewed-on: https://gerrit.libreoffice.org/69784 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-28tdf#122537: Use "best speed" instead of default compression level on iOSTor Lillqvist
Speed is more important than size in the use case where this showed up in a profile of the iOS app (inserting an image). This change causes zlib's deflate_fast() being used instead of its deflate_slow(). For a specific image I tested with the former takes 1.5 s, the latter 3.4 s. This is just one aspect of the slowness of image insertio. The resizing operations mentioned in the bug report is not yet investigated. Change-Id: Icf023522b965cb0265000c821a478610d098cd0a Reviewed-on: https://gerrit.libreoffice.org/68434 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/68488 Tested-by: Jenkins
2019-02-11loplugin:indentation in vclNoel Grandin
Change-Id: Idd7166833764fdf1d9c42a050490572a8b330199 Reviewed-on: https://gerrit.libreoffice.org/67610 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-08o3tl::make_unique -> std::make_unique in tools..xmloffGabor Kelemen
Since it is now possible to use C++14, it's time to replace the temporary solution with the standard one Change-Id: Ib3201f865d43f372007cdf381c7e244e9cbeae26 Reviewed-on: https://gerrit.libreoffice.org/67474 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2018-12-04remove unnecessary GraphicFilterImportFlags::AllowPartialStreamReadNoel Grandin
Change-Id: I43036745b50e99dc47bb9b63f78e8f3c6eea2c89 Reviewed-on: https://gerrit.libreoffice.org/64486 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-26remove unused enum value ConvertDataFormat::PDFNoel Grandin
Change-Id: I61023dc049b914fee1d5d8918b99972d34a82b4a Reviewed-on: https://gerrit.libreoffice.org/64042 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-25tdf#120703 PVS: V560 A part of conditional expression is always true/falseMike Kaganski
Change-Id: I8d98aa7dd77fbd79611b8a4aba77e8c378fd1cae Reviewed-on: https://gerrit.libreoffice.org/63981 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2018-10-15add SvStream::TellEndNoel Grandin
and simplify callsites to use it instead of the current "seek to end, find pos, seek back to original pos" pattern Change-Id: Ib5828868f73c341891efc759af8bd4695ae2f33c Reviewed-on: https://gerrit.libreoffice.org/61738 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-14Simplify containers iterations in vclArkadiy Illarionov
Use range-based loop or replace with STL functions. Change-Id: Ide2f89194238ae6a1f21e8132e2297710d9e6dcd Reviewed-on: https://gerrit.libreoffice.org/61756 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-09Extend loplugin:redundantinline to catch inline functions w/o external linkageStephan Bergmann
...where "inline" (in its meaning of "this function can be defined in multiple translation units") thus doesn't make much sense. (As discussed in compilerplugins/clang/redundantinline.cxx, exempt such "static inline" functions in include files for now.) All the rewriting has been done automatically by the plugin, except for one instance in sw/source/ui/frmdlg/column.cxx that used to involve an #if), plus some subsequent solenv/clang-format/reformat-formatted-files. Change-Id: Ib8b996b651aeafc03bbdc8890faa05ed50517224 Reviewed-on: https://gerrit.libreoffice.org/61573 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.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-09-14loplugin:constfields in vclNoel Grandin
Change-Id: I1072642be4fdfa720e61f2d7bad3c2701eb81610 Reviewed-on: https://gerrit.libreoffice.org/60430 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-13tdf#42949 Fix IWYU warnings in include/ucbhelper/*Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I7bfeef47abaf94cfb355db95c0fdb928ce36c0a6 Reviewed-on: https://gerrit.libreoffice.org/60232 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-09-12loplugin:simplifyconstruct in ucbhelper..vclNoel Grandin
Change-Id: Id435bb3289dcfd9a7aeca6a661e249085958cb7c Reviewed-on: https://gerrit.libreoffice.org/60392 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-23Resolves: tdf#118659 eps not shownCaolán McNamara
since... commit 7b355669c6ddeab2e6cec692d6afdff41c61d0fb Date: Sat Apr 14 15:13:05 2018 +0900 Function to load graphic swapped out (loaded on demand) new function doesn't load the eps, so supposed to fall back to the old function, but the new function didn't leave the stream at its original position on failing to attempt the load Change-Id: I960574722687cf5ad8c78be7339d2ce6b74397a9 Reviewed-on: https://gerrit.libreoffice.org/59503 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2018-07-31Add 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 directory vcl Change-Id: I205fe0f4e80a66cd9c3b19f7e9716411da1d1cf5 Reviewed-on: https://gerrit.libreoffice.org/58221 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-07-10pass SvStream around by std::unique_ptrNoel Grandin
and give utl::OStreamWrapper a new constructor so that it knows it is taking ownership of the SvStream, which appears to fix several leaks Change-Id: Idcbcca9b81a4f0345fd8b8c8a2f4e84213686a6b Reviewed-on: https://gerrit.libreoffice.org/57187 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-04Make ThreadPool::pushTask take param by std::unique_ptrNoel Grandin
And fix leak in XclExpRowBuffer::Finalize, was not freeing the synchronous task it creates Change-Id: Id1e9ddb5d968e6b95d9d2b5ca0c9e50774580182 Reviewed-on: https://gerrit.libreoffice.org/56874 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-21use more OutputDevice::GetBitmapExNoel Grandin
instead of GetBitmap Change-Id: Ib43cfaf3c91968d623e5a24f44539368da28d36f Reviewed-on: https://gerrit.libreoffice.org/55190 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-18vcl: share GfxLinkAshod Nakashian
When importing PDF as images, we store the PDF stream in the GfxLink. For large PDFs storing a copy of the full PDF with each page is overkill. For example a 10MB PDF with 200 pages will consume 2GB of memory! Change-Id: I99913514cf5c562683080bc817668095bee69427 Reviewed-on: https://gerrit.libreoffice.org/55571 Tested-by: Jenkins Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
2018-06-07sd: import PDFs as images using Pdfium new SdPdfFilterAshod Nakashian
LOK now opens PDFs as images using Pdfium, which has a superior accuracy and support to poppler, the default pdf reader. Change-Id: Ifbbecf7f048f001836fb98886705cba47e6bed4e
2018-06-03Improve 1a2ee0ecd5b0cff52922c1d261f7d03a57a52ca0Matteo Casalin
Change-Id: I50f369f28c3b97ba7fed494cb238b7756920abc6
2018-05-31drop Graphic::GetBitmapNoel Grandin
so that we flush out various code using Bitmap, in favour of using BitmapEx. This is part of the process of making Bitmap largely an internal detail of vcl Change-Id: Iaf2ead5e3d9960838723fb55b812b97108093d74 Reviewed-on: https://gerrit.libreoffice.org/55062 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-05-20tdf#117502 fix graphical bullets for OOXML and RTFTomaž Vajngerl
This change has multiple parts: - Move "BulletAsImage" test from ODT only to globalfilter and run it on ODT, DOC, DOCX, RTF formats and extend checks of the XGraphic used for the bullets and the size. - Check if GIF is animated as we need to know this in unloaded graphic or bullets aren't rendered correctly if we assume they are animated. - Use "Graphic" property in writerfilter to get the graphic from a XShape and not the "Bitmap" property which returns a Graphic as a MetaFile and not the original Graphic. - Make sure "GraphicBitmap" is filled with XBitmap and not with XGraphic. - Change "testFDO74215" to use the expected bullet size as it is in the original document. Looks like the initial bug was just asserting the bullet size is set to a value (non-zero). Change-Id: I6b151c0bf9f426669e07522f0fc699fbb652046b Reviewed-on: https://gerrit.libreoffice.org/54477 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-30Avoid getTokenCount (fix 1a2ee0ecd5b0cff52922c1d261f7d03a57a52ca0)Matteo Casalin
Change-Id: I2def3a427585fd281fb0b25e90060b2a2037212b
2018-04-30fix buildJochen Nitschke
reverts part of commit 1a2ee0ecd5b0cff52922c1d261f7d03a57a52ca0 Change-Id: Ic92d6e16814ab457651ffc5566970ba043e69cdb Reviewed-on: https://gerrit.libreoffice.org/53642 Reviewed-by: Jochen Nitschke <j.nitschke+logerrit@ok.de> Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de>
2018-04-29Avoid getTokenCountMatteo Casalin
Change-Id: Id4a6e669fedf803fc96ce83315dccc61cfb25aed
2018-04-20DOC import: lazy-read imagesMiklos Vajna
At least JPEG files are now only loaded when the user scrolls to the relevant page. Also fix the root cause of the EMF lazy-read problem and remove the previous workarounds. Change-Id: I9699927282b99bcb71a0d271a20bbfd56a361ee8 Reviewed-on: https://gerrit.libreoffice.org/53219 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2018-04-20Function to load graphic swapped out (loaded on demand)Tomaž Vajngerl
When a document is loaded it takes a lot of time and memory to load the graphic that are in the documet, so avoid that and just store the compressed graphic into a temporary file (handeled by GfxLink) and load when we really need to show the graphic. GraphicObject cached some attributes from Graphic, but this attributes now aren't available immediately so this attributes are removed form GraphicObject and now delegate to the Graphic itself. GetSizeBytes attribute however was removed as it is only used in some tests. GfxLink initial values were moved to the constructor and are not set in the header file anymore (as it is the recommended way to do it). The SdImportTest::testDocumentLayout failed as it looks like the dump sometimes didn't include the width and height of the null bitmap (which is set to 32x32) of the FillBitmap in some situations, but then in other situations it did include this attributes. With this change the width and height are always included for the FillBitmap which looks like it is more correct. Change-Id: Ia1218f93b1735402b7828404f65660e2d4acf32f Reviewed-on: https://gerrit.libreoffice.org/53016 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2018-04-10graphic: rename Set{Get,Is}Link to Set{Get,Is}GfxLinkTomaž Vajngerl
The main reason is to differentiate when we have the GfxLink from other (url, file) links which use the same terminology. Change-Id: I805c61e7fb231062340562c51c25a189b2cfc7f7 Reviewed-on: https://gerrit.libreoffice.org/52245 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>