summaryrefslogtreecommitdiff
path: root/drawinglayer/source/tools
AgeCommit message (Collapse)Author
2020-04-10Make BitmapPrimitive2D vcl-independentArmin Le Grand
as preparation to have drawinglayer module independent from vcl in the future Change-Id: Iaa01370f27b51cba5114a54f37d1ec73d0719918 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92048 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-04-04tdf#131644 Do not depend on actual DPI during EMF+ importBartosz Kosiorek
Change-Id: If38062ddb9afc9af7a4e9cf2c701c7f801361a93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91434 Tested-by: Jenkins Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-04-04Removed duplicated includeAndrea Gelmini
Change-Id: I8c767c113ecf24077e35afb719a6544714caca0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91673 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-04-03split up polypolygonprimitive2d.hxx into separate filesTomaž Vajngerl
This patch splits the polypolygonprimitive2d.hxx into: - PolyPolygonColorPrimitive2D.hxx - PolyPolygonGradientPrimitive2D.hxx - PolyPolygonGraphicPrimitive2D.hxx - PolyPolygonHairlinePrimitive2D.hxx - PolyPolygonHatchPrimitive2D.hxx - PolyPolygonMarkerPrimitive2D.hxx - PolyPolygonSelectionPrimitive2D.hxx - PolyPolygonStrokePrimitive2D.hxx ... and fixes the include files and pre-compiled headers Change-Id: I23982e0c81e8992f69e14cbac8e86858266b9999 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91603 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-03-25Fix typoAndrea Gelmini
Change-Id: Idd197f300e49dbce729e9399817bd36273d8de02 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91069 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-03-25tdf#89901 corectly interpret COL_TRANSPARENTArmin Le Grand
in wmfemfhelper when converting Metafile to sequence of Prmitives. In the MetafileActions MetaLineColorAction and MetaFillColorAction usage of COL_TRANSPARENT must switch off line draw/resp. fill Change-Id: Id5754773c06b7f4aa8824dce9b8b9e7e526e6067 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91061 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-03-24tdf#131542 EMF+ Implement BeginContainer recordBartosz Kosiorek
Change-Id: If388ef4544001fb9064aed3ce979c2790ab0645f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90997 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-03-21move headers inside modulesNoel Grandin
Change-Id: Iad5c414861eb807e6246b8a988b94d66ef5f687d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90776 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-20EMF+ tdf#124424 Add support for transparency to LinearGradient and blend pointsBartosz Kosiorek
Change-Id: Ia1cabaef6aa01337581cb9359bdd1ae90a4ebd55 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90767 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-03-16tdf#124424 EMF+ Extend test options of SvgLinearGradientPrimitive2DBartosz Kosiorek
The extended options were used in LinearGradient tests Change-Id: I44336edda2d82f936b6e931668bdac46ee7899e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90541 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-03-15tdf#124424 Fix WrapModeTileFlipY option for LinearGradientBartosz Kosiorek
Change-Id: I61a533d2fab085992c1507331699b78aca2c8d29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90515 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-03-15tdf#124424 Fix orientation of the LinearGradientBartosz Kosiorek
Change-Id: Id0547fcea95306997f8f04d400f3073abb6d6c47 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90514 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2020-03-11tdf#124424 Enhanced SvgGradientHelper for EMF+Armin Le Grand
Added support for repeat modes in GDI+ support and saw that the SVG primitive gradient helpers are not capable to support these completely, so had to do some quite complex adaptions which OTOH will be useful for more complex gradients anyways Change-Id: Ib9a9e4a55115834a4fb00300b05abe17ae36d105 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90329 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2020-02-17tdf#129675: This should be EmfPlusPenDataDashedLineXisco Fauli
else if (pen->penDataFlags & 0x00000100) was changed to else if (pen->penDataFlags & EmfPlusPenDataMiterLimit) where EmfPlusPenDataMiterLimit = 0x00000010 See https://bugs.documentfoundation.org/show_bug.cgi?id=129675#c20 Regression from 1bd303a4c38a1bc04c3cf7bf0e7a44ac0fdb209d Change-Id: I01ba4272aaa665a2fb0ab7ce9c05bb882db77d3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88878 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-28New loplugin:unsignedcompareStephan Bergmann
"Find explicit casts from signed to unsigned integer in comparison against unsigned integer, where the cast is presumably used to avoid warnings about signed vs. unsigned comparisons, and could thus be replaced with o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx) o3tl::make_unsigned requires its argument to be non-negative, and there is a chance that some original code like static_cast<sal_uInt32>(n) >= c used the explicit cast to actually force a (potentially negative) value of sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the cast to avoid a false "signed vs. unsigned comparison" warning in a case where n is known to be non-negative. It appears that restricting this plugin to non- equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=) is a useful heuristic to avoid such false positives. The only remainging false positive I found was 0288c8ffecff4956a52b9147d441979941e8b87f "Rephrase cast from sal_Int32 to sal_uInt32". But which of course does not mean that there were no further false positivies that I missed. So this commit may accidentally introduce some false hits of the assert in o3tl::make_unsigned. At least, it passed a full (Linux ASan+UBSan --enable-dbgutil) `make check && make screenshot`. It is by design that o3tl::make_unsigned only accepts signed integer parameter types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses which would in general be suspicious. But the STATIC_ARRAY_SELECT macro in include/oox/helper/helper.hxx is used with both signed and unsigned types, so needs a little oox::detail::make_unsigned helper function for now. (The ultimate fix being to get rid of the macro in the first place.) Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-24loplugin:makeshared in drawinglayer..fpickerNoel Grandin
Change-Id: Ib20fec3a7b6bfe2f94c6f5f2f9fa0be6f7c21e97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87320 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-20clang-tidy modernize-concat-nested-namespace in drawinglayerNoel Grandin
Change-Id: If2644743ab0d9b78d42d1d2fe6fa22c83472d2c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87065 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-07Fix typoAndrea Gelmini
Change-Id: I9646220221d3efe7bcd99253245a1044dbed7d40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86299 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2020-01-04cid#1456609 Operands don't affect resultCaolán McNamara
2.2.2.37 EmfPlusPointR Object has... "X (variable) This value MUST be specified by either an EmfPlusInteger7 object or an EmfPlusInteger15 object." and the same for Y. where variable is variable length. I think ReadInt32 isn't the right choice here and we need to read either one or two bytes, using the highbit of the first byte to determine if we need to read another byte. Change-Id: I60c0687403ff58dc393bd55a22f37c89357f60c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86207 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2020-01-04drawinglayer: extract classes from baseprimitive2d.hxx to own filesTomaž Vajngerl
This extracts Primitive2DContainer class to its own file, common typedefs for PrimitiveReference, Primitive2DSequence to own file CommonTypes.hxx, some commonly used and independent functions to Tools.hxx. But for not BufferedDecompositionPrimitive2D class is left as it is. Change-Id: Ia55bafd32fb95eba945d091e2c2ae89b160140d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86086 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-01-03cid#1456603 Uninitialized scalar fieldCaolán McNamara
Change-Id: Ic4d93a07bb42bbbf3370bd13e3425b0ecbb46e5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86179 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-28drawinglayer: improve logging for PenDataCompoundLine recordChris Sherlock
Change-Id: Ibc89724ceb52d5ad964767e844c4807d85f639c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/84839 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-23drawinglayer: rename PenDataNonCenter to PenAlignment, use PenAlignmentToStringChris Sherlock
Change-Id: I700f1b164e065b42928b05a4ead493c8ce2c57c2 Reviewed-on: https://gerrit.libreoffice.org/84838 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-23drawinglayer: read EmfPlusPointR points in EmfPlusPath recordChris Sherlock
Change-Id: Iecb0fbd85fd5ceb1d9d9904a6a5482385f8d8622 Reviewed-on: https://gerrit.libreoffice.org/84842 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-23drawinglayer: improve logging - DashedLineCapTypeToString()Chris Sherlock
Change-Id: I9d7250980b833b8f45bef337c83b3592ca52ae3c Reviewed-on: https://gerrit.libreoffice.org/84837 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-22drawinglayer: improve logging - LineJoinTypeToString()Chris Sherlock
Change-Id: Ib6ae6350fe61b3c0d787ad19ff55baa6487d63da Reviewed-on: https://gerrit.libreoffice.org/84835 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-22drawinglayer: improve logging - LineCapTypeToString()Chris Sherlock
Change-Id: If8314cab56a44b6045501490ed027f8c88bd6619 Reviewed-on: https://gerrit.libreoffice.org/84834 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-20drawinglayer: better logging for brushes in EmfPlusRecordTypeDrawStringChris Sherlock
Change-Id: I8ac039fd81767a52593721f211f3887276230ccf Reviewed-on: https://gerrit.libreoffice.org/84841 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-20drawinglayer: improve pen object loggingChris Sherlock
Change-Id: Iaae081ddee8097346000b7c2d987a2321d5e98cd Reviewed-on: https://gerrit.libreoffice.org/84833 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-20drawinglayer: improve more EMF+ loggingChris Sherlock
- Fixed logging of objects - Fixed indenting in log statements Change-Id: If29dc2a0d781f9d4c3fd2c810aa29fe607f0a9c9 Reviewed-on: https://gerrit.libreoffice.org/84467 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-19tdf#129188 drawinglayer: implement EMF+ SetTextContrastChris Sherlock
Change-Id: I5e249d5ba85df020ab90c6e543c0d8aefe0b572f Reviewed-on: https://gerrit.libreoffice.org/84455 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-12-18Fix debug build after 7732444c5d4e79ae0218932afe85bcc4b56a00a4Mike Kaganski
UnitTypeToString was defined static in emfphelperdata.cxx, and was absent in any header included in emfpfont.cxx, so it's unclear how could it pass all the build tests. Change-Id: I87f966d3cde5d04ab3d364ee0d583adbdc2cc2c0 Reviewed-on: https://gerrit.libreoffice.org/85355 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-12-18tdf#129459 drawinglayer: fill shapes with solid color brushChris Sherlock
EMF+ shapes were not filling when the brush style is a solid color. This patch fixes this issue. Change-Id: I6a2b12e514af9a85f50198dceee642fac8df2f1b Reviewed-on: https://gerrit.libreoffice.org/85343 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-18drawinglayer: improve logging for fontsChris Sherlock
Change-Id: I5b430360894dc1738445820679ceaf09edfeef55 Reviewed-on: https://gerrit.libreoffice.org/84840 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-14drawinglayer: log UnitType enumChris Sherlock
Change-Id: I5b13150e60109c0ede11c52940eeb10d2ba8e4e7 Reviewed-on: https://gerrit.libreoffice.org/84454 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-14drawinglayer: fix getUnitToPixelMultiplier() functionChris Sherlock
Change-Id: If3e7d87e804a69b8c9511e2b5ac3e0af2f1a57a0 Reviewed-on: https://gerrit.libreoffice.org/84832 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-14drawinglayer: improve logging EmfPlusRecordTypeSetInterpolationMode recordsChris Sherlock
Change-Id: I012c9c711e30c39be94cad93b8cadac98645ce71 Reviewed-on: https://gerrit.libreoffice.org/84453 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-14drawinglayer: improve logging for EmfPlusSetTextRenderingHintChris Sherlock
Change-Id: I68a371c8465bf3b13e5626d9f5d59fea48414304 Reviewed-on: https://gerrit.libreoffice.org/84452 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-11Fix typoAndrea Gelmini
Change-Id: I72f8f3b6ace69f69cdfb2b4ee6de280edbb4291a Reviewed-on: https://gerrit.libreoffice.org/84941 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-10drawinglayer: improve logging of EmfPlusRecordTypeSetAntiAliasModeChris Sherlock
Change-Id: I8c2891b13df3989de90ff407896a52ccf5a5208f Reviewed-on: https://gerrit.libreoffice.org/84451 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-10drawinglayer: fix spelling of mitterLimit - should be miterLimitChris Sherlock
Change-Id: Iaa20d1786ae6faac23cd06598da6097f22f0b623 Reviewed-on: https://gerrit.libreoffice.org/84836 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-06drawinglayer: improve logging for EmfPlusSetPixelOffsetMode recordsChris Sherlock
Change-Id: I4f0e9baee0d196f1cb682ce22e55569da1464fa7 Reviewed-on: https://gerrit.libreoffice.org/84288 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-12-06drawinglayer: add EMFPImageAttributesChris Sherlock
This is used by EmfPlusDrawImage and EmfPlusDrawImagePoints, basically these reference the object via the ImageAttributesID. Change-Id: I7fd852e7e419c9ef622bb0122fdccd66cb814cd2 Reviewed-on: https://gerrit.libreoffice.org/83031 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-12-04Fix typoAndrea Gelmini
Change-Id: Icd92be2ddc8b6b5d46a6ae04c6af268118f65418 Reviewed-on: https://gerrit.libreoffice.org/84391 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2019-12-04drawinglayer: improve logging of EmfPlusStringFormat objectsChris Sherlock
Change-Id: I9bc28525c143e49dcbea017b73d40e690e1e7460 Reviewed-on: https://gerrit.libreoffice.org/84271 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22tdf#42949 Fix IWYU warnings in drawinglayer/Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I0968cfd6a94c20e6b0d324f068ca658d7d5c0296 Reviewed-on: https://gerrit.libreoffice.org/83294 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-20drawinglayer: handle more primitives in the xml dumpMiklos Vajna
In preparation of writing a test for semi-transparent shape text. Change-Id: I2dac94a6cd9da48de9a5e407ceab78fb8be933d7 Reviewed-on: https://gerrit.libreoffice.org/83264 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-11-20tdf#42112 Add support for Custom Line CapBartosz Kosiorek
original patch updated by Chris Sherlock Change-Id: Ie68c3cc40d2c7263a0f786a973da77b00e4cbeb8 Reviewed-on: https://gerrit.libreoffice.org/82564 Tested-by: Jenkins Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
2019-11-17Extend loplugin:external to warn about enumsStephan Bergmann
To mitigate the dangers of silently breaking ADL when moving enums into unnamed namespaces (see the commit message of 206b5b2661be37efdff3c6aedb6f248c4636be79 "New loplugin:external"), note all functions that are affected. (The plan is to extend loplugin:external further to also warn about classes and class templates, and the code to identify affected functions already takes that into account, so some parts of that code are not actually relevant for enums.) But it appears that none of the functions that are actually affected by the changes in this commit relied on being found through ADL, so no adaptions were necessary for them. (clang::DeclContext::collectAllContexts is non-const, which recursively means that External's Visit... functions must take non-const Decl*. Which required compilerplugins/clang/sharedvisitor/analyzer.cxx to be generalized to support such Visit... functions with non-const Decl* parameters.) Change-Id: Ia215291402bf850d43defdab3cff4db5b270d1bd Reviewed-on: https://gerrit.libreoffice.org/83001 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>