diff --git a/0001-Keep-the-still-relevant-part-of-external-icu-icu4c-u.patch b/0001-Keep-the-still-relevant-part-of-external-icu-icu4c-u.patch
deleted file mode 100644
index fb453d1..0000000
--- a/0001-Keep-the-still-relevant-part-of-external-icu-icu4c-u.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 811575c105b0a2bc597afda2f84a087199447ae5 Mon Sep 17 00:00:00 2001
-Message-Id: <811575c105b0a2bc597afda2f84a087199447ae5.1531842164.git.erack@redhat.com>
-From: Stephan Bergmann
-Date: Wed, 18 Apr 2018 16:35:55 +0200
-Subject: [PATCH] Keep the still relevant part of
- external/icu/icu4c-ubsan.patch.1
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-...which f247f08e370626bbb427acd8f4a400fd875350a3 "Upgrade to ICU 61.1" had
-removed completely, in error.
-
-Change-Id: I7239011561851333cac58e54e4e7d590b8529dbc
----
- external/icu/UnpackedTarball_icu.mk | 1 +
- external/icu/icu4c-ubsan.patch.1 | 14 ++++++++++++++
- 2 files changed, 15 insertions(+)
- create mode 100644 external/icu/icu4c-ubsan.patch.1
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-Keep-the-still-relevant-part-of-external-icu-icu4c-u.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-Keep-the-still-relevant-part-of-external-icu-icu4c-u.patch"
-
-diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
-index b81cdaab6242..c789e6eb8d84 100644
---- a/external/icu/UnpackedTarball_icu.mk
-+++ b/external/icu/UnpackedTarball_icu.mk
-@@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
- external/icu/icu4c-solarisgcc.patch.1 \
- external/icu/icu4c-mkdir.patch.1 \
- external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch.1 \
-+ external/icu/icu4c-ubsan.patch.1 \
- external/icu/icu4c-icu11100.patch.1 \
- external/icu/icu4c-scriptrun.patch.1 \
- external/icu/icu4c-rtti.patch.1 \
-diff --git a/external/icu/icu4c-ubsan.patch.1 b/external/icu/icu4c-ubsan.patch.1
-new file mode 100644
-index 000000000000..ea9f13fd85cd
---- /dev/null
-+++ b/external/icu/icu4c-ubsan.patch.1
-@@ -0,0 +1,14 @@
-+diff -ur icu.org/source/common/ubidiimp.h icu/source/common/ubidiimp.h
-+--- icu.org/source/common/ubidiimp.h 2017-02-03 19:57:23.000000000 +0100
-++++ icu/source/common/ubidiimp.h 2017-04-21 22:46:25.374651159 +0200
-+@@ -198,8 +198,8 @@
-+ /* in a Run, logicalStart will get this bit set if the run level is odd */
-+ #define INDEX_ODD_BIT (1UL<<31)
-+
-+-#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((int32_t)(level)<<31))
-+-#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)(level)<<31))
-++#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((uint32_t)(level)<<31))
-++#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((uint32_t)(level)<<31))
-+ #define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT)
-+
-+ #define GET_INDEX(x) ((x)&~INDEX_ODD_BIT)
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch b/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch
deleted file mode 100644
index 1d09956..0000000
--- a/0001-Related-tdf-105998-except-cut-and-paste-as-bitmap-in.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 15cdcd0346b7aa98d4697edec8aeea9c810efa62 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?=
-Date: Tue, 5 Dec 2017 17:13:28 +0000
-Subject: [PATCH] Related: tdf#105998 except cut and paste as bitmap instead of
- export
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Take a drawing rectangle in draw and cut and paste as bitmap to writer. The
-hairline border along the very right/bottom edge of the bitmap appear missing.
-
-fallback to default handlers which can distort the hairline to be visible
-
-Change-Id: Iedb580f65879628839c83e41092745ae7c11267c
-Reviewed-on: https://gerrit.libreoffice.org/45902
-Tested-by: Jenkins
-Reviewed-by: Caolán McNamara
-Tested-by: Caolán McNamara
----
- .../source/processor2d/vclpixelprocessor2d.cxx | 25 +++++++++++++++++-----
- 1 file changed, 20 insertions(+), 5 deletions(-)
-
-diff --git a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
-index 9c21c83ee..5c5c0bb 100644
---- a/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
-+++ b/drawinglayer/source/processor2d/vclpixelprocessor2d.cxx
-@@ -41,6 +41,7 @@
- #include "helperwrongspellrenderer.hxx"
- #include
- #include
-+#include
- #include
- #include
- #include
-@@ -210,10 +211,6 @@ namespace drawinglayer
- maBColorModifierStack.getModifiedColor(
- rSource.getLineAttribute().getColor()));
-
-- mpOutputDevice->SetFillColor();
-- mpOutputDevice->SetLineColor(Color(aLineColor));
-- aHairLinePolyPolygon.transform(maCurrentTransformation);
--
- double fLineWidth(rSource.getLineAttribute().getWidth());
-
- if(basegfx::fTools::more(fLineWidth, 0.0))
-@@ -234,6 +231,24 @@ namespace drawinglayer
- fLineWidth = 0.0;
- }
-
-+ //Related: tdf#105998 cut and paste as bitmap of shape from draw to
-+ //writer. If we are a hairline along the very right/bottom edge of
-+ //the canvas then fallback to defaults which can distort the
-+ //hairline inside the paintable area
-+ if (fLineWidth == 0.0)
-+ {
-+ Size aSize = mpOutputDevice->GetOutputSize();
-+ basegfx::B2DRange aRange = aHairLinePolyPolygon.getB2DRange();
-+ basegfx::B2DRange aOutputRange = aRange;
-+ aOutputRange.transform(maCurrentTransformation);
-+ if (std::round(aOutputRange.getMaxX()) == aSize.Width() || std::round(aOutputRange.getMaxY()) == aSize.Height())
-+ return false;
-+ }
-+
-+ mpOutputDevice->SetFillColor();
-+ mpOutputDevice->SetLineColor(Color(aLineColor));
-+ aHairLinePolyPolygon.transform(maCurrentTransformation);
-+
- bool bHasPoints(false);
- bool bTryWorked(false);
-
---
-2.9.5
-
diff --git a/0001-Related-tdf-106100-recover-mangled-svg-in-presentati.patch b/0001-Related-tdf-106100-recover-mangled-svg-in-presentati.patch
deleted file mode 100644
index 518896e..0000000
--- a/0001-Related-tdf-106100-recover-mangled-svg-in-presentati.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a74837a0e7c7259e4396aa5f05cf1384e256db35 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?=
-Date: Mon, 20 Feb 2017 16:04:58 +0000
-Subject: [PATCH] Related: tdf#106100 recover mangled svg in presentations
-
-Change-Id: I77b452aa69a8341aa30e1e93d0d5ee8160533095
----
- svgio/Module_svgio.mk | 4 ----
- svgio/source/svgreader/svgsvgnode.cxx | 27 +++------------------------
- 2 files changed, 3 insertions(+), 28 deletions(-)
-
-diff --git a/svgio/Module_svgio.mk b/svgio/Module_svgio.mk
-index 29ef97d..8b827fc 100644
---- a/svgio/Module_svgio.mk
-+++ b/svgio/Module_svgio.mk
-@@ -22,8 +22,4 @@ $(eval $(call gb_Module_add_targets,svgio,\
- Library_svgio \
- ))
-
--$(eval $(call gb_Module_add_check_targets,svgio,\
-- CppunitTest_svgio \
--))
--
- # vim: set noet ts=4 sw=4:
-diff --git a/svgio/source/svgreader/svgsvgnode.cxx b/svgio/source/svgreader/svgsvgnode.cxx
-index 7800666..087c621 100644
---- a/svgio/source/svgreader/svgsvgnode.cxx
-+++ b/svgio/source/svgreader/svgsvgnode.cxx
-@@ -522,32 +522,11 @@ namespace svgio
- }
- else
- {
-- // There exists no parent to resolve relative width or height.
-- // Use child size as fallback and expand to aspect ratio given
-- // by the viewBox. No mapping.
-- // We get viewport >= content, therefore no clipping.
-- bNeedsMapping = false;
-- const basegfx::B2DRange aChildRange(
-- aSequence.getB2DRange(
-- drawinglayer::geometry::ViewInformation2D()));
-- const double fChildWidth(aChildRange.getWidth());
-- const double fChildHeight(aChildRange.getHeight());
-- const double fLeft(aChildRange.getMinX());
-- const double fTop(aChildRange.getMinY());
-- if ( fChildWidth / fViewBoxWidth > fChildHeight / fViewBoxHeight )
-- { // expand y
-- fW = fChildWidth;
-- fH = fChildWidth / fViewBoxRatio;
-- }
-- else
-- { // expand x
-- fH = fChildHeight;
-- fW = fChildHeight * fViewBoxRatio;
-- }
-- aSvgCanvasRange = basegfx::B2DRange(fLeft, fTop, fLeft + fW, fTop + fH);
-+ fW = fViewBoxWidth;
-+ fH = fViewBoxHeight;
-+ aSvgCanvasRange = basegfx::B2DRange(0.0, 0.0, fW, fH);
- }
-
--
- if (bNeedsMapping)
- {
- // create mapping
---
-2.9.3
-
diff --git a/0001-Upgrade-to-ICU-61.1.patch b/0001-Upgrade-to-ICU-61.1.patch
deleted file mode 100644
index ed64bec..0000000
--- a/0001-Upgrade-to-ICU-61.1.patch
+++ /dev/null
@@ -1,675 +0,0 @@
-From f247f08e370626bbb427acd8f4a400fd875350a3 Mon Sep 17 00:00:00 2001
-Message-Id:
-From: Eike Rathke
-Date: Tue, 17 Apr 2018 20:13:52 +0200
-Subject: [PATCH] Upgrade to ICU 61.1
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-Change-Id: I89c1c3d13d85decc72576744de2a16d20471d29d
-Reviewed-on: https://gerrit.libreoffice.org/53064
-Tested-by: Jenkins
-Reviewed-by: Eike Rathke
----
- configure.ac | 4 +-
- download.lst | 8 +-
- external/icu/UnpackedTarball_icu.mk | 3 +-
- ...patch.1 => icu4c-61-werror-shadow.patch.1} | 30 ++-
- external/icu/icu4c-khmerbreakengine.patch.1 | 246 +++++++++---------
- external/icu/icu4c-ubsan.patch.1 | 91 -------
- 6 files changed, 147 insertions(+), 235 deletions(-)
- rename external/icu/{icu4c-59-werror-shadow.patch.1 => icu4c-61-werror-shadow.patch.1} (50%)
- delete mode 100644 external/icu/icu4c-ubsan.patch.1
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-Upgrade-to-ICU-61.1.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-Upgrade-to-ICU-61.1.patch"
-
-diff --git a/configure.ac b/configure.ac
-index bdc374699cb9..458f9f3c2735 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -9001,8 +9001,8 @@ SYSTEM_GENBRK=
- SYSTEM_GENCCODE=
- SYSTEM_GENCMN=
-
--ICU_MAJOR=60
--ICU_MINOR=2
-+ICU_MAJOR=61
-+ICU_MINOR=1
- ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
- ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
- ICU_RECLASSIFIED_HEBREW_LETTER="TRUE"
-diff --git a/download.lst b/download.lst
-index 0a1fa65396d1..76f067bff4d7 100644
---- a/download.lst
-+++ b/download.lst
-@@ -102,10 +102,10 @@ export HUNSPELL_SHA256SUM := 3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce
- export HUNSPELL_TARBALL := hunspell-1.6.2.tar.gz
- export HYPHEN_SHA256SUM := 304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
- export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
--export ICU_SHA256SUM := f073ea8f35b926d70bb33e6577508aa642a8b316a803f11be20af384811db418
--export ICU_TARBALL := icu4c-60_2-src.tgz
--export ICU_DATA_SHA256SUM := 68f42ad0c9e0a5a5af8eba0577ba100833912288bad6e4d1f42ff480bbcfd4a9
--export ICU_DATA_TARBALL := icu4c-60_2-data.zip
-+export ICU_SHA256SUM := d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef
-+export ICU_TARBALL := icu4c-61_1-src.tgz
-+export ICU_DATA_SHA256SUM := d149ed0985b5a6e16a9d8ed66f105dd58fd334c276779f74241cfa656ed2830a
-+export ICU_DATA_TARBALL := icu4c-61_1-data.zip
- export JFREEREPORT_FLOW_ENGINE_SHA256SUM := 233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd
- export JFREEREPORT_FLOW_ENGINE_TARBALL := ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- export JFREEREPORT_FLUTE_SHA256SUM := 1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133
-diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
-index a4d0b16ecb36..b81cdaab6242 100644
---- a/external/icu/UnpackedTarball_icu.mk
-+++ b/external/icu/UnpackedTarball_icu.mk
-@@ -27,15 +27,14 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
- external/icu/icu4c-solarisgcc.patch.1 \
- external/icu/icu4c-mkdir.patch.1 \
- external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch.1 \
-- external/icu/icu4c-ubsan.patch.1 \
- external/icu/icu4c-icu11100.patch.1 \
- external/icu/icu4c-scriptrun.patch.1 \
- external/icu/icu4c-rtti.patch.1 \
- external/icu/icu4c-clang-cl.patch.1 \
- $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.patch.1) \
- external/icu/icu4c-khmerbreakengine.patch.1 \
-- external/icu/icu4c-59-werror-shadow.patch.1 \
- external/icu/ofz4860.patch.2 \
-+ external/icu/icu4c-61-werror-shadow.patch.1 \
- ))
-
- $(eval $(call gb_UnpackedTarball_add_file,icu,source/data/brkitr/khmerdict.dict,external/icu/khmerdict.dict))
-diff --git a/external/icu/icu4c-59-werror-shadow.patch.1 b/external/icu/icu4c-61-werror-shadow.patch.1
-similarity index 50%
-rename from external/icu/icu4c-59-werror-shadow.patch.1
-rename to external/icu/icu4c-61-werror-shadow.patch.1
-index fb88244aff13..b00f76317eff 100644
---- a/external/icu/icu4c-59-werror-shadow.patch.1
-+++ b/external/icu/icu4c-61-werror-shadow.patch.1
-@@ -1,33 +1,35 @@
-+# https://ssl.icu-project.org/trac/ticket/13709
-+# Werror=shadow fails for unistr.h
- diff -ur icu.org/source/common/unicode/unistr.h icu/source/common/unicode/unistr.h
----- icu.org/source/common/unicode/unistr.h 2017-03-29 06:44:37.000000000 +0200
--+++ icu/source/common/unicode/unistr.h 2017-04-24 11:59:51.782076511 +0200
--@@ -3080,11 +3080,11 @@
-+--- icu.org/source/common/unicode/unistr.h 2018-03-26 15:38:29.000000000 +0200
-++++ icu/source/common/unicode/unistr.h 2018-04-18 10:44:16.321188314 +0200
-+@@ -3053,11 +3053,11 @@
- * uint16_t * constructor.
- * Delegates to UnicodeString(const char16_t *, int32_t).
- * @param text UTF-16 string
- - * @param length string length
--+ * @param length_ string length
-- * @draft ICU 59
-++ * @param textLength string length
-+ * @stable ICU 59
- */
- - UnicodeString(const uint16_t *text, int32_t length) :
- - UnicodeString(ConstChar16Ptr(text), length) {}
--+ UnicodeString(const uint16_t *text, int32_t length_) :
--+ UnicodeString(ConstChar16Ptr(text), length_) {}
-++ UnicodeString(const uint16_t *text, int32_t textLength) :
-++ UnicodeString(ConstChar16Ptr(text), textLength) {}
- #endif
-
-- /*
--@@ -3097,11 +3097,11 @@
-+ #if U_SIZEOF_WCHAR_T==2 || defined(U_IN_DOXYGEN)
-+@@ -3066,11 +3066,11 @@
- * (Only defined if U_SIZEOF_WCHAR_T==2.)
- * Delegates to UnicodeString(const char16_t *, int32_t).
- * @param text NUL-terminated UTF-16 string
- - * @param length string length
--+ * @param length_ string length
-- * @draft ICU 59
-++ * @param textLength string length
-+ * @stable ICU 59
- */
- - UnicodeString(const wchar_t *text, int32_t length) :
- - UnicodeString(ConstChar16Ptr(text), length) {}
--+ UnicodeString(const wchar_t *text, int32_t length_) :
--+ UnicodeString(ConstChar16Ptr(text), length_) {}
-++ UnicodeString(const wchar_t *text, int32_t textLength) :
-++ UnicodeString(ConstChar16Ptr(text), textLength) {}
- #endif
-
-- /*
-+ /**
-diff --git a/external/icu/icu4c-khmerbreakengine.patch.1 b/external/icu/icu4c-khmerbreakengine.patch.1
-index 6b45b3743611..9f134dd961b1 100644
---- a/external/icu/icu4c-khmerbreakengine.patch.1
-+++ b/external/icu/icu4c-khmerbreakengine.patch.1
-@@ -1,16 +1,18 @@
- diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
----- icu.org/source/common/dictbe.cpp 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/dictbe.cpp 2017-04-21 23:14:23.845894374 +0200
--@@ -29,8 +29,17 @@
-+--- icu.org/source/common/dictbe.cpp 2018-03-26 15:38:30.000000000 +0200
-++++ icu/source/common/dictbe.cpp 2018-04-17 17:55:38.620944919 +0200
-+@@ -29,7 +29,19 @@
- ******************************************************************
- */
-
---DictionaryBreakEngine::DictionaryBreakEngine(uint32_t breakTypes) {
--+DictionaryBreakEngine::DictionaryBreakEngine(uint32_t breakTypes) :
--+ clusterLimit(3)
--+{
-+-DictionaryBreakEngine::DictionaryBreakEngine() {
-++DictionaryBreakEngine::DictionaryBreakEngine()
-++ : fTypes(0), clusterLimit(0) {
-++}
-++
-++DictionaryBreakEngine::DictionaryBreakEngine(uint32_t breakTypes)
-++ : fTypes(breakTypes), clusterLimit(3) {
- + UErrorCode status = U_ZERO_ERROR;
-- fTypes = breakTypes;
- + fViramaSet.applyPattern(UNICODE_STRING_SIMPLE("[[:ccc=VR:]]"), status);
- +
- + // note Skip Sets contain fIgnoreSet characters too.
-@@ -20,16 +22,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- }
-
- DictionaryBreakEngine::~DictionaryBreakEngine() {
--@@ -92,7 +101,7 @@
-- result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks);
-- utext_setNativeIndex(text, current);
-- }
---
--+
-- return result;
-- }
--
--@@ -103,6 +112,169 @@
-+@@ -76,6 +88,169 @@
- fSet.compact();
- }
-
-@@ -199,7 +192,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- /*
- ******************************************************************
- * PossibleWord
--@@ -130,35 +302,35 @@
-+@@ -103,35 +278,35 @@
- public:
- PossibleWord() : count(0), prefix(0), offset(-1), mark(0), current(0) {};
- ~PossibleWord() {};
-@@ -244,7 +237,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- // Dictionary leaves text after longest prefix, not longest word. Back up.
- if (count <= 0) {
- utext_setNativeIndex(text, start);
--@@ -830,51 +1002,28 @@
-+@@ -803,51 +978,28 @@
- * KhmerBreakEngine
- */
-
-@@ -265,7 +258,8 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- -static const int32_t KHMER_MIN_WORD_SPAN = KHMER_MIN_WORD * 2;
- -
- KhmerBreakEngine::KhmerBreakEngine(DictionaryMatcher *adoptDictionary, UErrorCode &status)
-- : DictionaryBreakEngine((1 << UBRK_WORD) | (1 << UBRK_LINE)),
-+- : DictionaryBreakEngine(),
-++ : DictionaryBreakEngine((1 << UBRK_WORD) | (1 << UBRK_LINE)),
- fDictionary(adoptDictionary)
- {
- - fKhmerWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Khmr:]&[:LineBreak=SA:]]"), status);
-@@ -301,13 +295,13 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- - fEndWordSet.compact();
- - fBeginWordSet.compact();
- -// fSuffixSet.compact();
--+ fIgnoreSet.compact();
--+ fBaseSet.compact();
--+ fPuncSet.compact();
-++ fIgnoreSet.compact();
-++ fBaseSet.compact();
-++ fPuncSet.compact();
- }
-
- KhmerBreakEngine::~KhmerBreakEngine() {
--@@ -886,180 +1035,204 @@
-+@@ -859,180 +1011,204 @@
- int32_t rangeStart,
- int32_t rangeEnd,
- UVector32 &foundBreaks ) const {
-@@ -350,17 +344,6 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- + foundBreaks.push(rangeEnd, status);
- + return foundBreaks.size() - wordsFound;
- + }
--+
--+ scanStart = rangeStart;
--+ scanWJ(text, scanStart, rangeEnd, before, after);
--+ if (startZwsp || initAfter >= before) {
--+ after = initAfter;
--+ before = 0;
--+ }
--+ if (!endZwsp && after > finalBefore && after < rangeEnd)
--+ endZwsp = true;
--+ if (endZwsp && before > finalBefore)
--+ before = finalBefore;
-
- - while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
- - cuWordLength = 0;
-@@ -375,7 +358,17 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- - cpWordLength = words[wordsFound % KHMER_LOOKAHEAD].markedCPLength();
- - wordsFound += 1;
- - }
---
-++ scanStart = rangeStart;
-++ scanWJ(text, scanStart, rangeEnd, before, after);
-++ if (startZwsp || initAfter >= before) {
-++ after = initAfter;
-++ before = 0;
-++ }
-++ if (!endZwsp && after > finalBefore && after < rangeEnd)
-++ endZwsp = true;
-++ if (endZwsp && before > finalBefore)
-++ before = finalBefore;
-+
- - // If there was more than one, see which one can take us forward the most words
- - else if (candidates > 1) {
- - // If we're already at the end of the range, we're done
-@@ -390,22 +383,6 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- - words[wordsFound % KHMER_LOOKAHEAD].markCurrent();
- - wordsMatched = 2;
- - }
---
--- // If we're already at the end of the range, we're done
--- if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
--- goto foundBest;
--- }
---
--- // See if any of the possible second words is followed by a third word
--- do {
--- // If we find a third word, stop right away
--- if (words[(wordsFound + 2) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd)) {
--- words[wordsFound % KHMER_LOOKAHEAD].markCurrent();
--- goto foundBest;
--- }
--- }
--- while (words[(wordsFound + 1) % KHMER_LOOKAHEAD].backUp(text));
--- }
- + utext_setNativeIndex(text, rangeStart);
- + int32_t numCodePts = rangeEnd - rangeStart;
- + // bestSnlp[i] is the snlp of the best segmentation of the first i
-@@ -415,7 +392,11 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- + for(int32_t i = 1; i <= numCodePts; i++) {
- + bestSnlp.addElement(kuint32max, status);
- + }
--+
-+
-+- // If we're already at the end of the range, we're done
-+- if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
-+- goto foundBest;
-+- }
- + // prev[i] is the index of the last code point in the previous word in
- + // the best segmentation of the first i characters. Note negative implies
- + // that the code point is part of an unknown word.
-@@ -423,7 +404,17 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- + for(int32_t i = 0; i <= numCodePts; i++) {
- + prev.addElement(kuint32max, status);
- + }
--+
-+
-+- // See if any of the possible second words is followed by a third word
-+- do {
-+- // If we find a third word, stop right away
-+- if (words[(wordsFound + 2) % KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd)) {
-+- words[wordsFound % KHMER_LOOKAHEAD].markCurrent();
-+- goto foundBest;
-+- }
-+- }
-+- while (words[(wordsFound + 1) % KHMER_LOOKAHEAD].backUp(text));
-+- }
- + const int32_t maxWordSize = 20;
- + UVector32 values(maxWordSize, status);
- + values.setSize(maxWordSize);
-@@ -528,27 +519,17 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- - if (cuWordLength <= 0) {
- - wordsFound += 1;
- - }
---
--- // Update the length with the passed-over characters
--- cuWordLength += chars;
--- }
--- else {
--- // Back up to where we were for next iteration
--- utext_setNativeIndex(text, current+cuWordLength);
- + } while (fMarkSet.contains(c) || fIgnoreSet.contains(c));
- + values.setElementAt(BADSNLP, count);
- + lengths.setElementAt(utext_getNativeIndex(text) - currix, count++);
- + } else {
- + values.setElementAt(BADSNLP, count);
- + lengths.setElementAt(1, count++);
-- }
-- }
-++ }
-++ }
-
--- // Never stop before a combining mark.
--- int32_t currPos;
--- while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
--- utext_next32(text);
--- cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
-+- // Update the length with the passed-over characters
-+- cuWordLength += chars;
- + for (int32_t j = 0; j < count; j++) {
- + uint32_t v = values.elementAti(j);
- + int32_t newSnlp = bestSnlp.elementAti(i) + v;
-@@ -559,7 +540,10 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- + ++ln;
- + utext_next32(text);
- + c = utext_current32(text);
--+ }
-+ }
-+- else {
-+- // Back up to where we were for next iteration
-+- utext_setNativeIndex(text, current+cuWordLength);
- + int32_t ln_j_i = ln + i; // yes really i!
- + if (newSnlp < bestSnlp.elementAti(ln_j_i)) {
- + if (v == BADSNLP) {
-@@ -572,9 +556,38 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- + else
- + prev.setElementAt(i, ln_j_i);
- + bestSnlp.setElementAt(newSnlp, ln_j_i);
--+ }
-+ }
- }
- -
-+- // Never stop before a combining mark.
-+- int32_t currPos;
-+- while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
-+- utext_next32(text);
-+- cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
-++ }
-++ // Start pushing the optimal offset index into t_boundary (t for tentative).
-++ // prev[numCodePts] is guaranteed to be meaningful.
-++ // We'll first push in the reverse order, i.e.,
-++ // t_boundary[0] = numCodePts, and afterwards do a swap.
-++ UVector32 t_boundary(numCodePts+1, status);
-++
-++ int32_t numBreaks = 0;
-++ // No segmentation found, set boundary to end of range
-++ while (numCodePts >= 0 && (uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) {
-++ --numCodePts;
-++ }
-++ if (numCodePts < 0) {
-++ t_boundary.addElement(numCodePts, status);
-++ numBreaks++;
-++ } else {
-++ for (int32_t i = numCodePts; (uint32_t)i != kuint32max; i = prev.elementAti(i)) {
-++ if (i < 0) i = -i;
-++ t_boundary.addElement(i, status);
-++ numBreaks++;
-+ }
-++ U_ASSERT(prev.elementAti(t_boundary.elementAti(numBreaks - 1)) == 0);
-++ }
-+
- - // Look ahead for possible suffixes if a dictionary word does not follow.
- - // We do this in code rather than using a rule so that the heuristic
- - // resynch continues to function. For example, one of the suffix characters
-@@ -616,30 +629,6 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- - // Did we find a word on this iteration? If so, push it on the break stack
- - if (cuWordLength > 0) {
- - foundBreaks.push((current+cuWordLength), status);
--+ }
--+ // Start pushing the optimal offset index into t_boundary (t for tentative).
--+ // prev[numCodePts] is guaranteed to be meaningful.
--+ // We'll first push in the reverse order, i.e.,
--+ // t_boundary[0] = numCodePts, and afterwards do a swap.
--+ UVector32 t_boundary(numCodePts+1, status);
--+
--+ int32_t numBreaks = 0;
--+ // No segmentation found, set boundary to end of range
--+ while (numCodePts >= 0 && (uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) {
--+ --numCodePts;
--+ }
--+ if (numCodePts < 0) {
--+ t_boundary.addElement(numCodePts, status);
--+ numBreaks++;
--+ } else {
--+ for (int32_t i = numCodePts; (uint32_t)i != kuint32max; i = prev.elementAti(i)) {
--+ if (i < 0) i = -i;
--+ t_boundary.addElement(i, status);
--+ numBreaks++;
--+ }
--+ U_ASSERT(prev.elementAti(t_boundary.elementAti(numBreaks - 1)) == 0);
--+ }
--+
- + // Now that we're done, convert positions in t_boundary[] (indices in
- + // the normalized input string) back to indices in the original input UText
- + // while reversing t_boundary and pushing values to foundBreaks.
-@@ -669,38 +658,35 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
-
- #if !UCONFIG_NO_NORMALIZATION
- diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
----- icu.org/source/common/dictbe.h 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/dictbe.h 2017-04-21 23:14:23.845894374 +0200
--@@ -34,6 +34,15 @@
-+--- icu.org/source/common/dictbe.h 2018-03-26 15:38:30.000000000 +0200
-++++ icu/source/common/dictbe.h 2018-04-17 14:55:33.307639865 +0200
-+@@ -34,7 +34,8 @@
-+ * threads without synchronization.
- */
- class DictionaryBreakEngine : public LanguageBreakEngine {
-- private:
--+
--+ /**
--+ * Default constructor.
--+ *
--+ */
--+ DictionaryBreakEngine();
--+
-+- private:
- + protected:
- +
- /**
- * The set of characters handled by this engine
- * @internal
--@@ -48,11 +57,63 @@
-+@@ -42,14 +43,84 @@
-
-- uint32_t fTypes;
-+ UnicodeSet fSet;
-
- + const int32_t WJ = 0x2060;
- + const int32_t ZWSP = 0x200B;
- +
-- /**
--- * Default constructor.
--- *
-++ /**
-++ * The break types it was constructed with
-++ * @internal
-++ */
-++ uint32_t fTypes;
-++
-++ /**
- + * A Unicode set of all viramas
- + * @internal
-- */
--- DictionaryBreakEngine();
-++ */
- + UnicodeSet fViramaSet;
- +
- + /**
-@@ -751,10 +737,26 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
- + bool scanAfterEnd(UText *text, int32_t rangeEnd, int32_t& end, bool &doBreak) const;
- + void scanBackClusters(UText *text, int32_t textStart, int32_t& start) const;
- + void scanFwdClusters(UText *text, int32_t textEnd, int32_t& end) const;
--
-++
- public:
-
--@@ -83,7 +144,7 @@
-+ /**
-+- * Constructor
-++ * Default constructor.
-++ *
-+ */
-+ DictionaryBreakEngine();
-+
-+ /**
-++ * Constructor with break types.
-++ */
-++ explicit DictionaryBreakEngine(uint32_t breakTypes);
-++
-++ /**
-+ * Virtual destructor.
-+ */
-+ virtual ~DictionaryBreakEngine();
-+@@ -68,7 +139,7 @@
- * Find any breaks within a run in the supplied text.
- *
- * @param text A UText representing the text. The iterator is left at
-@@ -763,7 +765,7 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
- * that starts from the first character in the range.
- * @param startPos The start of the run within the supplied text.
- * @param endPos The end of the run within the supplied text.
--@@ -245,118 +306,120 @@
-+@@ -218,118 +289,120 @@
-
- };
-
-@@ -997,8 +999,8 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
-
- /*******************************************************************
- diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionarydata.cpp
----- icu.org/source/common/dictionarydata.cpp 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/dictionarydata.cpp 2017-04-21 23:14:23.846894372 +0200
-+--- icu.org/source/common/dictionarydata.cpp 2018-03-26 15:38:30.000000000 +0200
-++++ icu/source/common/dictionarydata.cpp 2018-04-17 14:04:50.775567214 +0200
- @@ -44,7 +44,7 @@
-
- int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t limit,
-@@ -1046,8 +1048,8 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
- if (values != NULL) {
- values[wordCount] = bt.getValue();
- diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata.h
----- icu.org/source/common/dictionarydata.h 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/dictionarydata.h 2017-04-21 23:14:23.846894372 +0200
-+--- icu.org/source/common/dictionarydata.h 2018-03-26 15:38:30.000000000 +0200
-++++ icu/source/common/dictionarydata.h 2018-04-17 14:04:50.775567214 +0200
- @@ -21,6 +21,7 @@
- #include "unicode/utext.h"
- #include "unicode/udata.h"
-@@ -1084,8 +1086,8 @@ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata
- private:
- UChar32 transform(UChar32 c) const;
- diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
----- icu.org/source/data/Makefile.in 2017-04-21 23:13:03.248087545 +0200
--+++ icu/source/data/Makefile.in 2017-04-21 23:14:23.846894372 +0200
-+--- icu.org/source/data/Makefile.in 2018-04-17 12:28:37.098707466 +0200
-++++ icu/source/data/Makefile.in 2018-04-17 14:04:50.775567214 +0200
- @@ -183,7 +183,7 @@
- endif
- endif
-diff --git a/external/icu/icu4c-ubsan.patch.1 b/external/icu/icu4c-ubsan.patch.1
-deleted file mode 100644
-index 9f6aa3fbc9f8..000000000000
---- a/external/icu/icu4c-ubsan.patch.1
-+++ /dev/null
-@@ -1,91 +0,0 @@
--diff -ur icu.org/source/common/rbbidata.h icu/source/common/rbbidata.h
----- icu.org/source/common/rbbidata.h 2017-02-03 19:57:23.000000000 +0100
--+++ icu/source/common/rbbidata.h 2017-04-21 22:46:25.371651160 +0200
--@@ -115,7 +115,7 @@
-- /* StatusTable of the set of matching */
-- /* tags (rule status values) */
-- int16_t fReserved;
--- uint16_t fNextState[2]; /* Next State, indexed by char category. */
--+ uint16_t fNextState[1]; /* Next State, indexed by char category. */
-- /* This array does not have two elements */
-- /* Array Size is actually fData->fHeader->fCatCount */
-- /* CAUTION: see RBBITableBuilder::getTableSize() */
--@@ -128,7 +128,7 @@
-- uint32_t fRowLen; /* Length of a state table row, in bytes. */
-- uint32_t fFlags; /* Option Flags for this state table */
-- uint32_t fReserved; /* reserved */
--- char fTableData[4]; /* First RBBIStateTableRow begins here. */
--+ char fTableData[1]; /* First RBBIStateTableRow begins here. */
-- /* (making it char[] simplifies ugly address */
-- /* arithmetic for indexing variable length rows.) */
-- };
--diff -ur icu.org/source/common/rbbitblb.cpp icu/source/common/rbbitblb.cpp
----- icu.org/source/common/rbbitblb.cpp 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/rbbitblb.cpp 2017-04-21 22:46:25.373651159 +0200
--@@ -1095,15 +1095,15 @@
-- return 0;
-- }
--
--- size = sizeof(RBBIStateTable) - 4; // The header, with no rows to the table.
--+ size = offsetof(RBBIStateTable, fTableData); // The header, with no rows to the table.
--
-- numRows = fDStates->size();
-- numCols = fRB->fSetBuilder->getNumCharCategories();
--
--- // Note The declaration of RBBIStateTableRow is for a table of two columns.
--- // Therefore we subtract two from numCols when determining
--+ // Note The declaration of RBBIStateTableRow is for a table of one columns.
--+ // Therefore we subtract one from numCols when determining
-- // how much storage to add to a row for the total columns.
--- rowSize = sizeof(RBBIStateTableRow) + sizeof(uint16_t)*(numCols-2);
--+ rowSize = sizeof(RBBIStateTableRow) + sizeof(uint16_t)*(numCols-1);
-- size += numRows * rowSize;
-- return size;
-- }
--@@ -1133,7 +1133,7 @@
-- }
--
-- table->fRowLen = sizeof(RBBIStateTableRow) +
--- sizeof(uint16_t) * (fRB->fSetBuilder->getNumCharCategories() - 2);
--+ sizeof(uint16_t) * (fRB->fSetBuilder->getNumCharCategories() - 1);
-- table->fNumStates = fDStates->size();
-- table->fFlags = 0;
-- if (fRB->fLookAheadHardBreak) {
--diff -ur icu.org/source/common/ubidiimp.h icu/source/common/ubidiimp.h
----- icu.org/source/common/ubidiimp.h 2017-02-03 19:57:23.000000000 +0100
--+++ icu/source/common/ubidiimp.h 2017-04-21 22:46:25.374651159 +0200
--@@ -198,8 +198,8 @@
-- /* in a Run, logicalStart will get this bit set if the run level is odd */
-- #define INDEX_ODD_BIT (1UL<<31)
--
---#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((int32_t)(level)<<31))
---#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)(level)<<31))
--+#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((uint32_t)(level)<<31))
--+#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((uint32_t)(level)<<31))
-- #define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT)
--
-- #define GET_INDEX(x) ((x)&~INDEX_ODD_BIT)
--diff -ur icu.org/source/common/ucmndata.cpp icu/source/common/ucmndata.cpp
----- icu.org/source/common/ucmndata.cpp 2017-03-08 16:34:47.000000000 +0100
--+++ icu/source/common/ucmndata.cpp 2017-04-21 22:46:25.376651159 +0200
--@@ -77,7 +77,7 @@
-- typedef struct {
-- uint32_t count;
-- uint32_t reserved;
--- PointerTOCEntry entry[2]; /* Actual size is from count. */
--+ PointerTOCEntry entry[1]; /* Actual size is from count. */
-- } PointerTOC;
--
--
--diff -ur icu.org/source/common/ucmndata.h icu/source/common/ucmndata.h
----- icu.org/source/common/ucmndata.h 2017-01-20 01:20:31.000000000 +0100
--+++ icu/source/common/ucmndata.h 2017-04-21 22:46:25.377651159 +0200
--@@ -52,7 +52,7 @@
--
-- typedef struct {
-- uint32_t count;
--- UDataOffsetTOCEntry entry[2]; /* Actual size of array is from count. */
--+ UDataOffsetTOCEntry entry[1]; /* Actual size of array is from count. */
-- } UDataOffsetTOC;
--
-- /**
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-Upgrade-to-ICU-62.1.patch b/0001-Upgrade-to-ICU-62.1.patch
deleted file mode 100644
index cfbb5d0..0000000
--- a/0001-Upgrade-to-ICU-62.1.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From 86dfa34c6d83b70923d462fecad316dafd9a1fc4 Mon Sep 17 00:00:00 2001
-Message-Id: <86dfa34c6d83b70923d462fecad316dafd9a1fc4.1531839924.git.erack@redhat.com>
-From: Eike Rathke
-Date: Mon, 16 Jul 2018 15:20:32 +0200
-Subject: [PATCH] Upgrade to ICU 62.1
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-Change-Id: I9426e77aa85cfe068df59db47b8ac50b59cd4eb3
-Reviewed-on: https://gerrit.libreoffice.org/57500
-Reviewed-by: Eike Rathke
-Tested-by: Jenkins
----
- configure.ac | 2 +-
- download.lst | 8 +++----
- external/icu/UnpackedTarball_icu.mk | 1 -
- external/icu/icu4c-mkdir.patch.1 | 6 ++---
- external/icu/ofz4860.patch.2 | 25 ---------------------
- i18nutil/source/utility/unicode.cxx | 23 +++++++++++++++++++
- include/svx/strings.hrc | 11 +++++++++
- svx/source/dialog/charmap.cxx | 35 +++++++++++++++++++++++++++++
- 8 files changed, 77 insertions(+), 34 deletions(-)
- delete mode 100644 external/icu/ofz4860.patch.2
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-Upgrade-to-ICU-62.1.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-Upgrade-to-ICU-62.1.patch"
-
-diff --git a/configure.ac b/configure.ac
-index 23b3fd4953c9..2fd11a9b3d19 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -9066,7 +9066,7 @@ SYSTEM_GENBRK=
- SYSTEM_GENCCODE=
- SYSTEM_GENCMN=
-
--ICU_MAJOR=61
-+ICU_MAJOR=62
- ICU_MINOR=1
- ICU_RECLASSIFIED_PREPEND_SET_EMPTY="TRUE"
- ICU_RECLASSIFIED_CONDITIONAL_JAPANESE_STARTER="TRUE"
-diff --git a/download.lst b/download.lst
-index dd3519b74a8d..0d4e974ed105 100644
---- a/download.lst
-+++ b/download.lst
-@@ -102,10 +102,10 @@ export HUNSPELL_SHA256SUM := 3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce
- export HUNSPELL_TARBALL := hunspell-1.6.2.tar.gz
- export HYPHEN_SHA256SUM := 304636d4eccd81a14b6914d07b84c79ebb815288c76fe027b9ebff6ff24d5705
- export HYPHEN_TARBALL := 5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
--export ICU_SHA256SUM := d007f89ae8a2543a53525c74359b65b36412fa84b3349f1400be6dcf409fafef
--export ICU_TARBALL := icu4c-61_1-src.tgz
--export ICU_DATA_SHA256SUM := d149ed0985b5a6e16a9d8ed66f105dd58fd334c276779f74241cfa656ed2830a
--export ICU_DATA_TARBALL := icu4c-61_1-data.zip
-+export ICU_SHA256SUM := 3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3
-+export ICU_TARBALL := icu4c-62_1-src.tgz
-+export ICU_DATA_SHA256SUM := 93bcaf58cfa9223972da79cb8e0f94819ace4995db6041b84f4d9bd810246d1d
-+export ICU_DATA_TARBALL := icu4c-62_1-data.zip
- export JFREEREPORT_FLOW_ENGINE_SHA256SUM := 233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd
- export JFREEREPORT_FLOW_ENGINE_TARBALL := ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
- export JFREEREPORT_FLUTE_SHA256SUM := 1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133
-diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
-index c789e6eb8d84..6800c1fb5ea8 100644
---- a/external/icu/UnpackedTarball_icu.mk
-+++ b/external/icu/UnpackedTarball_icu.mk
-@@ -34,7 +34,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
- external/icu/icu4c-clang-cl.patch.1 \
- $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.patch.1) \
- external/icu/icu4c-khmerbreakengine.patch.1 \
-- external/icu/ofz4860.patch.2 \
- external/icu/icu4c-61-werror-shadow.patch.1 \
- ))
-
-diff --git a/external/icu/icu4c-mkdir.patch.1 b/external/icu/icu4c-mkdir.patch.1
-index 3234f151b677..7de4cf51174c 100644
---- a/external/icu/icu4c-mkdir.patch.1
-+++ b/external/icu/icu4c-mkdir.patch.1
-@@ -1,10 +1,10 @@
- diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
----- icu.org/source/data/Makefile.in 2016-06-15 20:58:17.000000000 +0200
--+++ icu/source/data/Makefile.in 2017-04-21 22:29:00.747158002 +0200
-+--- icu.org/source/data/Makefile.in 2018-06-21 11:39:15.000000000 +0200
-++++ icu/source/data/Makefile.in 2018-07-16 13:18:26.928109541 +0200
- @@ -367,6 +367,7 @@
- ifeq ($(PKGDATA_MODE),dll)
- SO_VERSION_DATA = $(OUTTMPDIR)/icudata.res
-- $(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc
-+ $(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc | build-dir
- + mkdir -p $(OUTTMPDIR)
- ifeq ($(MSYS_RC_MODE),1)
- rc.exe -i$(srcdir)/../common -i$(top_builddir)/common -fo$@ $(CPPFLAGS) $<
-diff --git a/external/icu/ofz4860.patch.2 b/external/icu/ofz4860.patch.2
-deleted file mode 100644
-index 14114d52878b..000000000000
---- a/external/icu/ofz4860.patch.2
-+++ /dev/null
-@@ -1,25 +0,0 @@
--From 529ba01ee606940ca273b187be8ce9ba31cf2d90 Mon Sep 17 00:00:00 2001
--From: David Tardon
--Date: Fri, 19 Jan 2018 10:41:02 +0100
--Subject: [PATCH] ofz#4860 fix past-the-end read from array
--
-----
-- icu4c/source/common/locmap.cpp | 2 +-
-- 1 file changed, 1 insertion(+), 1 deletion(-)
--
--diff --git a/icu4c/source/common/locmap.cpp b/icu4c/source/common/locmap.cpp
--index cbb2b810a..6d62d8310 100644
----- a/icu4c/source/common/locmap.cpp
--+++ b/icu4c/source/common/locmap.cpp
--@@ -1015,7 +1015,7 @@ static const char*
-- getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
-- {
-- uint32_t i;
--- for (i = 0; i <= this_0->numRegions; i++)
--+ for (i = 0; i < this_0->numRegions; i++)
-- {
-- if (this_0->regionMaps[i].hostID == hostID)
-- {
----
--2.14.3
--
-diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx
-index 6d90b15ca42e..876750d6119d 100644
---- a/i18nutil/source/utility/unicode.cxx
-+++ b/i18nutil/source/utility/unicode.cxx
-@@ -726,6 +726,29 @@ OString unicode::getExemplarLanguageForUScriptCode(UScriptCode eScript)
- case USCRIPT_ZANABAZAR_SQUARE:
- sRet = "mn-Zanb"; // abugida to write Mongolian
- break;
-+#endif
-+#if (U_ICU_VERSION_MAJOR_NUM >= 62)
-+ case USCRIPT_DOGRA:
-+ sRet = "dgo"; // Dogri proper
-+ break;
-+ case USCRIPT_GUNJALA_GONDI:
-+ sRet = "wsg"; // Adilabad Gondi
-+ break;
-+ case USCRIPT_MAKASAR:
-+ sRet = "mak";
-+ break;
-+ case USCRIPT_MEDEFAIDRIN:
-+ sRet = "mis-Medf"; // Uncoded with script
-+ break;
-+ case USCRIPT_HANIFI_ROHINGYA:
-+ sRet = "rhg";
-+ break;
-+ case USCRIPT_SOGDIAN:
-+ sRet = "sog";
-+ break;
-+ case USCRIPT_OLD_SOGDIAN:
-+ sRet = "sog";
-+ break;
- #endif
- }
- return sRet;
-# Slightly adapted to rawhide/F29 libreoffice-6-0-6
-diff --git a/include/svx/strings.hrc b/include/svx/strings.hrc
-index 86c2215ac1c4..18fd984a1bd8 100644
---- a/include/svx/strings.hrc
-+++ b/include/svx/strings.hrc
-@@ -1656,6 +1656,17 @@
- #define RID_SUBSETSTR_SOYOMBO NC_("RID_SUBSETMAP", "Soyombo")
- #define RID_SUBSETSTR_SYRIAC_SUPPLEMENT NC_("RID_SUBSETMAP", "Syriac Supplement")
- #define RID_SUBSETSTR_ZANABAZAR_SQUARE NC_("RID_SUBSETMAP", "Zanabazar Square")
-+#define RID_SUBSETSTR_CHESS_SYMBOLS NC_("RID_SUBSETMAP", "Chess Symbols")
-+#define RID_SUBSETSTR_DOGRA NC_("RID_SUBSETMAP", "Dogra")
-+#define RID_SUBSETSTR_GEORGIAN_EXTENDED NC_("RID_SUBSETMAP", "Georgian Extended")
-+#define RID_SUBSETSTR_GUNJALA_GONDI NC_("RID_SUBSETMAP", "Gunjala Gondi")
-+#define RID_SUBSETSTR_HANIFI_ROHINGYA NC_("RID_SUBSETMAP", "Hanifi Rohingya")
-+#define RID_SUBSETSTR_INDIC_SIYAQ_NUMBERS NC_("RID_SUBSETMAP", "Indic Siyaq Numbers")
-+#define RID_SUBSETSTR_MAKASAR NC_("RID_SUBSETMAP", "Makasar")
-+#define RID_SUBSETSTR_MAYAN_NUMERALS NC_("RID_SUBSETMAP", "Mayan Numerals")
-+#define RID_SUBSETSTR_MEDEFAIDRIN NC_("RID_SUBSETMAP", "Medefaidrin")
-+#define RID_SUBSETSTR_OLD_SOGDIAN NC_("RID_SUBSETMAP", "Old Sogdian")
-+#define RID_SUBSETSTR_SOGDIAN NC_("RID_SUBSETMAP", "Sogdian")
-
- #endif
-
-diff --git a/svx/source/dialog/charmap.cxx b/svx/source/dialog/charmap.cxx
-index 3bf3a01d520f..fcaa955541df 100644
---- a/svx/source/dialog/charmap.cxx
-+++ b/svx/source/dialog/charmap.cxx
-@@ -1744,6 +1744,41 @@ void SubsetMap::InitList()
- aAllSubsets.emplace_back( 0x11A00, 0x11A4F, SvxResId(RID_SUBSETSTR_ZANABAZAR_SQUARE) );
- break;
- #endif
-+#if (U_ICU_VERSION_MAJOR_NUM >= 62)
-+ case UBLOCK_CHESS_SYMBOLS:
-+ aAllSubsets.emplace_back( 0x1FA00, 0x1FA6F, SvxResId(RID_SUBSETSTR_CHESS_SYMBOLS) );
-+ break;
-+ case UBLOCK_DOGRA:
-+ aAllSubsets.emplace_back( 0x11800, 0x1184F, SvxResId(RID_SUBSETSTR_DOGRA) );
-+ break;
-+ case UBLOCK_GEORGIAN_EXTENDED:
-+ aAllSubsets.emplace_back( 0x1C90, 0x1CBF, SvxResId(RID_SUBSETSTR_GEORGIAN_EXTENDED) );
-+ break;
-+ case UBLOCK_GUNJALA_GONDI:
-+ aAllSubsets.emplace_back( 0x11D60, 0x11DAF, SvxResId(RID_SUBSETSTR_GUNJALA_GONDI) );
-+ break;
-+ case UBLOCK_HANIFI_ROHINGYA:
-+ aAllSubsets.emplace_back( 0x10D00, 0x10D3F, SvxResId(RID_SUBSETSTR_HANIFI_ROHINGYA) );
-+ break;
-+ case UBLOCK_INDIC_SIYAQ_NUMBERS:
-+ aAllSubsets.emplace_back( 0x1EC70, 0x1ECBF, SvxResId(RID_SUBSETSTR_INDIC_SIYAQ_NUMBERS) );
-+ break;
-+ case UBLOCK_MAKASAR:
-+ aAllSubsets.emplace_back( 0x11EE0, 0x11EFF, SvxResId(RID_SUBSETSTR_MAKASAR) );
-+ break;
-+ case UBLOCK_MAYAN_NUMERALS:
-+ aAllSubsets.emplace_back( 0x1D2E0, 0x1D2FF, SvxResId(RID_SUBSETSTR_MAYAN_NUMERALS) );
-+ break;
-+ case UBLOCK_MEDEFAIDRIN:
-+ aAllSubsets.emplace_back( 0x16E40, 0x16E9F, SvxResId(RID_SUBSETSTR_MEDEFAIDRIN) );
-+ break;
-+ case UBLOCK_OLD_SOGDIAN:
-+ aAllSubsets.emplace_back( 0x10F00, 0x10F2F, SvxResId(RID_SUBSETSTR_OLD_SOGDIAN) );
-+ break;
-+ case UBLOCK_SOGDIAN:
-+ aAllSubsets.emplace_back( 0x10F30, 0x10F6F, SvxResId(RID_SUBSETSTR_SOGDIAN) );
-+ break;
-+#endif
-
- }
-
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-Use-ICU_MAJOR-instead-of-hard-coded-Upgrade-to-ICU-6.patch b/0001-Use-ICU_MAJOR-instead-of-hard-coded-Upgrade-to-ICU-6.patch
deleted file mode 100644
index 2e33f8e..0000000
--- a/0001-Use-ICU_MAJOR-instead-of-hard-coded-Upgrade-to-ICU-6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1d3de59ac2d12e42e12c9642bd252236a80b096b Mon Sep 17 00:00:00 2001
-Message-Id: <1d3de59ac2d12e42e12c9642bd252236a80b096b.1531842210.git.erack@redhat.com>
-From: Eike Rathke
-Date: Tue, 17 Jul 2018 17:37:55 +0200
-Subject: [PATCH] Use $(ICU_MAJOR) instead of hard coded (Upgrade to ICU 62.1)
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-Change-Id: Ifea7072922388b2c0b7631fb809b23e2a5524a3c
----
- ios/CustomTarget_iOS_setup.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-Use-ICU_MAJOR-instead-of-hard-coded-Upgrade-to-ICU-6.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-Use-ICU_MAJOR-instead-of-hard-coded-Upgrade-to-ICU-6.patch"
-
-# Slightly adapted to rawhide/F29 libreoffice-6-0-6
-diff --git a/ios/CustomTarget_iOS_setup.mk b/ios/CustomTarget_iOS_setup.mk
-index a0d1a18823ab..718bb8b90d46 100644
---- a/ios/CustomTarget_iOS_setup.mk
-+++ b/ios/CustomTarget_iOS_setup.mk
-@@ -32,7 +32,7 @@ $(IOSGEN)/native-code.h: $(BUILDDIR)/config_host.mk $(SRCDIR)/ios/CustomTarget_iOS_setup.mk
- > $(IOSGEN)/native-code.h
-
- # generate resource files used to start/run LibreOffice
-- cp $(WORKDIR)/UnpackedTarball/icu/source/data/in/icudt61l.dat $(IOSRES)/icudt61l.dat
-+ cp $(WORKDIR)/UnpackedTarball/icu/source/data/in/icudt$(ICU_MAJOR)l.dat $(IOSRES)/icudt$(ICU_MAJOR)l.dat
- cp $(INSTDIR)/program/types.rdb $(IOSRES)/udkapi.rdb
- cp $(INSTDIR)/program/types/offapi.rdb $(IOSRES)
- cp $(INSTDIR)/program/types/oovbaapi.rdb $(IOSRES)
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-We-use-ICU-61-now.patch b/0001-We-use-ICU-61-now.patch
deleted file mode 100644
index 1b3f5de..0000000
--- a/0001-We-use-ICU-61-now.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b9dde4a74cba5a771cbc85880d518f6717d19216 Mon Sep 17 00:00:00 2001
-Message-Id:
-From: Tor Lillqvist
-Date: Thu, 7 Jun 2018 21:51:14 +0300
-Subject: [PATCH] We use ICU 61 now
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-Change-Id: I7faf23de08db680599658206faaf3028888563f6
----
- ios/CustomTarget_iOS_setup.mk | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-We-use-ICU-61-now.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-We-use-ICU-61-now.patch"
-
-# Slightly adapted to rawhide/F29 libreoffice-6-0-6
-diff --git a/ios/CustomTarget_iOS_setup.mk b/ios/CustomTarget_iOS_setup.mk
-index a9f98850c6d8..a0d1a18823ab 100644
---- a/ios/CustomTarget_iOS_setup.mk
-+++ b/ios/CustomTarget_iOS_setup.mk
-@@ -32,7 +32,7 @@ $(IOSGEN)/native-code.h: $(BUILDDIR)/config_host.mk $(SRCDIR)/ios/CustomTarget_iOS_setup.mk
- > $(IOSGEN)/native-code.h
-
- # generate resource files used to start/run LibreOffice
-- cp $(WORKDIR)/UnpackedTarball/icu/source/data/in/icudt60l.dat $(IOSRES)/icudt60l.dat
-+ cp $(WORKDIR)/UnpackedTarball/icu/source/data/in/icudt61l.dat $(IOSRES)/icudt61l.dat
- cp $(INSTDIR)/program/types.rdb $(IOSRES)/udkapi.rdb
- cp $(INSTDIR)/program/types/offapi.rdb $(IOSRES)
- cp $(INSTDIR)/program/types/oovbaapi.rdb $(IOSRES)
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-cov-scan-help-warnings.patch b/0001-cov-scan-help-warnings.patch
deleted file mode 100644
index cd6b21f..0000000
--- a/0001-cov-scan-help-warnings.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From fa5f426359bbe1b6a9c521130bf7bbee2e60f69f Mon Sep 17 00:00:00 2001
-From: rpmbuild
-Date: Wed, 18 Jul 2018 15:31:31 +0100
-Subject: [PATCH] foo
-
----
- helpcontent2/to-wiki/wikiconv2.py | 2 --
- 5 files changed, 7 insertions(+), 12 deletions(-)
-
-diff --git a/helpcontent2/to-wiki/wikiconv2.py b/helpcontent2/to-wiki/wikiconv2.py
-index 93f72eb..55ff72f 100755
---- a/helpcontent2/to-wiki/wikiconv2.py
-+++ b/helpcontent2/to-wiki/wikiconv2.py
-@@ -1071,8 +1071,6 @@ class Item(ElementBase):
- sys.stderr.write('Unhandled item type. Possibly type has been localized.\n')
- finally:
- raise UnhandledItemType
-- return replace_text(self.text)
--
-
- class Paragraph(ElementBase):
- def __init__(self, attrs, parent):
---
-2.14.4
-
diff --git a/0001-cov-scan-warnings.patch b/0001-cov-scan-warnings.patch
deleted file mode 100644
index 11afe49..0000000
--- a/0001-cov-scan-warnings.patch
+++ /dev/null
@@ -1,2547 +0,0 @@
-From b2549a70cb5d27f9c869451650c289ca831af97d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?=
-Date: Thu, 26 Jul 2018 13:08:01 +0100
-Subject: [PATCH] cov scan warnings
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Change-Id: If27bcfe85c5f2502ac1adb4ed4850ee42447516a
-
-coverity#705646 Resource leak
-
-Reviewed-on: https://gerrit.libreoffice.org/54139
-Reviewed-by: Caolán McNamara
-Tested-by: Caolán McNamara
-(cherry picked from commit 1a3deaa7f7ff1d7e6ab5f5d551bcbc8c00d84052)
-
-Change-Id: I709b16f720cf97c05207cfb22d0c0ea15622367a
-
-Related: rhbz#1602589 silence error[memleak]: Memory leak: newValue
-
-Change-Id: I2d04c75aa9b5e1d91e06992fdb99899657ecf96d
-
-Related: rhbz#1602589 double_free, convert to std::vector
-
-Change-Id: I5fa19422d7ee61e7aad74eae86d843072e94016c
-
-Related: rhbz#1602589 silence coverity leaked_storage
-
-Change-Id: Iae694be40b32cc3821d326bb362e6091dba19a35
-
-Related: rhbz#1602589 silence coverity use_after_free
-
-Change-Id: If5345b6515c45bee2742d1293cd181ab46e8e61b
-
-Related: rhbz#1602589 silence coverity copy_paste_error
-
-Change-Id: Idca4bfaaa9f127eae87ae879e2131aed747ce4b3
-
-Related: rhbz#1602589 add comments to coverity annotations
-
-Change-Id: I88c941832a0d682ea4b6028c28edd48cf5df38f7
-
-Related: rhbz#1602589 silence leaked_storage
-
-Change-Id: Ib489ebf55d3a18d2af6f34b3f6128231d6d7758c
-
-InsertNewTable always returns true
-
-Change-Id: I28b2cd46bf40011f5f813784bd5c182f18ee103f
-
-pDPObject can never be null
-
-Change-Id: Ie98da9b53e952c2fb1f8f91e4b9489060114c366
-
-ScDPObject is only needed in endFastElement
-
-Change-Id: I8e1a7897777111c225e42ebcf81e67face6b29b9
-
-Related: rhbz#1602589 silence leaked_storage
-
-Change-Id: I21cc4af40429fa3ef4284d6c0ea592b05bf36620
-
-bodge it
-
-Change-Id: Ie9e4e3173a91f5380a98d629c8a67d2ebb9c6c14
-
-Related: rhbz#1602589 rework to avoid bogus cppcheck double free warning
-
-Change-Id: Ie673de68f39b903536c2287b8989fe6afcc9fd66
-
-SHELLCHECK_WARNING, VERBOSE is unused
-
-gengal.sh was originally based on unopkg.sh
-which had this --verbose switch...
-
-commit 164027e48899faaee284242eaca04b8aa5545319
-Date: Fri Apr 5 16:39:24 2013 +0100
-
- gengal: re-base on original tool.
-
- new wrapper based on unopkg.sh.
- work re-based on original SUSE implementation.
-
-and unopkg.sh later had VERBOSE removed...
-
-commit 1fc195f7e830619d56cc4c56043b154bc3a72b02
-Author: Stephan Bergmann
-Date: Thu Oct 17 15:34:53 2013 +0200
-
- Simplify code (VERBOSE was unused)
-
-but gengal.sh retained its unused VERBOSE variable
-
-Change-Id: I56aa830aef829c7727550fcaf7aed5058fffdc78
----
- bridges/source/cpp_uno/shared/bridge.cxx | 2 +-
- bridges/source/jni_uno/jni_bridge.cxx | 4 +-
- bridges/source/jni_uno/jni_info.cxx | 6 +-
- comphelper/source/misc/threadpool.cxx | 2 +-
- cppu/source/typelib/static_types.cxx | 2 +-
- cppu/source/typelib/typelib.cxx | 9 +-
- extensions/source/scanner/sanedlg.cxx | 2 +-
- filter/source/svg/presentation_engine.js | 8 +-
- .../accelerators/acceleratorconfiguration.cxx | 4 +-
- idlc/source/parser.y | 2 +-
- include/LibreOfficeKit/LibreOfficeKitInit.h | 4 +-
- include/vcl/bitmap.hxx | 14 +-
- pyuno/source/module/pyuno_dlopenwrapper.c | 1 +
- registry/source/reflwrit.cxx | 8 +-
- registry/source/regimpl.cxx | 124 ++++++---------
- sal/osl/unx/file.cxx | 4 +-
- sal/osl/unx/pipe.cxx | 9 +-
- sal/osl/unx/profile.cxx | 1 +
- sal/osl/w32/file.cxx | 4 +-
- sal/rtl/alloc_arena.cxx | 2 +-
- sal/rtl/alloc_cache.cxx | 6 +-
- sc/inc/dpobject.hxx | 2 +-
- sc/qa/unit/ucalc_pivottable.cxx | 142 +++++++-----------
- sc/source/core/data/dpobject.cxx | 3 +-
- sc/source/core/tool/chgtrack.cxx | 20 ++-
- sc/source/core/tool/compiler.cxx | 1 +
- sc/source/filter/xml/xmldpimp.cxx | 19 +--
- sc/source/filter/xml/xmldpimp.hxx | 3 +-
- sc/source/ui/docshell/dbdocfun.cxx | 4 +-
- sc/source/ui/undo/undodat.cxx | 6 +-
- sc/source/ui/view/viewdata.cxx | 2 +
- .../ui/animations/CustomAnimationPane.cxx | 2 +
- sd/source/ui/unoidl/unosrch.cxx | 71 +++------
- sfx2/source/control/itemdel.cxx | 2 +-
- solenv/bin/pack_images.py | 2 +-
- soltools/cpp/_unix.c | 1 +
- soltools/mkdepend/parse.c | 1 +
- svtools/source/svhtml/htmlout.cxx | 2 +-
- svx/source/gengal/gengal.sh | 2 -
- sw/source/core/text/itrform2.cxx | 2 +
- sw/source/ui/index/cnttab.cxx | 9 +-
- unoidl/source/legacyprovider.cxx | 32 ++--
- unotest/source/cpp/officeconnection.cxx | 2 +-
- vcl/source/bitmap/BitmapScaleConvolution.cxx | 62 ++++----
- vcl/source/gdi/bitmap3.cxx | 10 +-
- vcl/source/gdi/bitmap4.cxx | 53 +++----
- vcl/source/gdi/pdfwriter_impl.cxx | 1 +
- vcl/unx/generic/plugadapt/salplug.cxx | 1 +
- .../sun/star/wizards/agenda/TopicsControl.py | 6 +-
- .../star/wizards/document/OfficeDocument.py | 1 -
- 50 files changed, 306 insertions(+), 376 deletions(-)
-
-diff --git a/bridges/source/cpp_uno/shared/bridge.cxx b/bridges/source/cpp_uno/shared/bridge.cxx
-index 556350022e48..186d89aa1956 100644
---- a/bridges/source/cpp_uno/shared/bridge.cxx
-+++ b/bridges/source/cpp_uno/shared/bridge.cxx
-@@ -144,7 +144,7 @@ uno_Mapping * Bridge::createMapping(
- bool bExportCpp2Uno)
- {
- Bridge * bridge = new Bridge(pCppEnv, pUnoEnv, bExportCpp2Uno);
-- //coverity[leaked_storage]
-+ // coverity[leaked_storage] - on purpose
- return bExportCpp2Uno ? &bridge->aCpp2Uno : &bridge->aUno2Cpp;
- }
-
-diff --git a/bridges/source/jni_uno/jni_bridge.cxx b/bridges/source/jni_uno/jni_bridge.cxx
-index 3859b148c541..15daa8e28603 100644
---- a/bridges/source/jni_uno/jni_bridge.cxx
-+++ b/bridges/source/jni_uno/jni_bridge.cxx
-@@ -551,7 +551,7 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL uno_ext_getMapping(
- uno_registerMapping(
- &mapping, Bridge_free,
- pFrom, &pTo->pExtEnv->aBase, nullptr );
-- // coverity[leaked_storage]
-+ // coverity[leaked_storage] - on purpose
- }
- else if ( from_env_typename == UNO_LB_UNO && to_env_typename == UNO_LB_JAVA )
- {
-@@ -561,7 +561,7 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL uno_ext_getMapping(
- uno_registerMapping(
- &mapping, Bridge_free,
- &pFrom->pExtEnv->aBase, pTo, nullptr );
-- // coverity[leaked_storage]
-+ // coverity[leaked_storage] - on purpose
- }
- }
- catch (const BridgeRuntimeError & err)
-diff --git a/bridges/source/jni_uno/jni_info.cxx b/bridges/source/jni_uno/jni_info.cxx
-index 82b773d6d58c..1542eebbf4e6 100644
---- a/bridges/source/jni_uno/jni_info.cxx
-+++ b/bridges/source/jni_uno/jni_info.cxx
-@@ -103,7 +103,7 @@ JNI_interface_type_info::JNI_interface_type_info(
- typelib_InterfaceTypeDescription * td =
- reinterpret_cast< typelib_InterfaceTypeDescription * >(
- m_td.get() );
-- // coverity [ctor_dtor_leak]
-+ // coverity[ctor_dtor_leak] - on purpose
- m_methods = new jmethodID[ td->nMapFunctionIndexToMemberIndex ];
- sal_Int32 nMethodIndex = 0;
- typelib_TypeDescriptionReference ** ppMembers = td->ppMembers;
-@@ -288,7 +288,7 @@ JNI_compound_type_info::JNI_compound_type_info(
- td->aBase.pWeakRef,
- jni_info->m_RuntimeException_type.getTypeLibType() ))
- {
-- // coverity [ctor_dtor_leak]
-+ // coverity[ctor_dtor_leak] - on purpose
- m_fields = new jfieldID[ 2 ];
- m_fields[ 0 ] = nullptr; // special Throwable.getMessage()
- // field Context
-@@ -860,7 +860,7 @@ JNI_info::JNI_info(
- {
- css::uno::TypeDescription XInterface_td(
- cppu::UnoType::get());
-- // coverity [ctor_dtor_leak]
-+ // coverity[ctor_dtor_leak] - on purpose
- m_XInterface_type_info =
- new JNI_interface_type_info( jni, XInterface_td.get() );
- }
-diff --git a/comphelper/source/misc/threadpool.cxx b/comphelper/source/misc/threadpool.cxx
-index 23e363213206..d8e984fe58d5 100644
---- a/comphelper/source/misc/threadpool.cxx
-+++ b/comphelper/source/misc/threadpool.cxx
-@@ -153,7 +153,7 @@ void ThreadPool::shutdownLocked(std::unique_lock& aGuard)
- }
- assert( maTasks.empty() );
-
-- // coverity[missing_lock]
-+ // coverity[missing_lock] - on purpose
- mbTerminate = true;
-
- maTasksChanged.notify_all();
-diff --git a/cppu/source/typelib/static_types.cxx b/cppu/source/typelib/static_types.cxx
-index 3fb0bf6ab62a..f432b766a84a 100644
---- a/cppu/source/typelib/static_types.cxx
-+++ b/cppu/source/typelib/static_types.cxx
-@@ -439,7 +439,7 @@ void SAL_CALL typelib_static_interface_type_init(
- typelib_TypeDescriptionReference * pBaseType )
- SAL_THROW_EXTERN_C()
- {
-- // coverity[callee_ptr_arith]
-+ // coverity[callee_ptr_arith] - not a bug
- typelib_static_mi_interface_type_init(
- ppRef, pTypeName, pBaseType == nullptr ? 0 : 1, &pBaseType);
- }
-diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx
-index 4ef5aaf18ac7..8d0c8e5647de 100644
---- a/cppu/source/typelib/typelib.cxx
-+++ b/cppu/source/typelib/typelib.cxx
-@@ -564,6 +564,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- osl_atomic_increment( &Init::get().nIndirectTypeDescriptionCount );
- #endif
- pTmp->pType = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -581,6 +582,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->aBase.ppTypeRefs = nullptr;
- pTmp->aBase.ppMemberNames = nullptr;
- pTmp->pParameterizedTypes = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -597,6 +599,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->pMemberOffsets = nullptr;
- pTmp->ppTypeRefs = nullptr;
- pTmp->ppMemberNames = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -611,6 +614,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->nEnumValues = 0;
- pTmp->ppEnumNames = nullptr;
- pTmp->pEnumValues = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -632,6 +636,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->pMapMemberIndexToFunctionIndex= nullptr;
- pTmp->nBaseTypes = 0;
- pTmp->ppBaseTypes = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -652,6 +657,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->pInterface = nullptr;
- pTmp->pBaseRef = nullptr;
- pTmp->nIndex = 0;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -672,6 +678,7 @@ extern "C" void SAL_CALL typelib_typedescription_newEmpty(
- pTmp->ppGetExceptions = nullptr;
- pTmp->nSetExceptions = 0;
- pTmp->ppSetExceptions = nullptr;
-+ // coverity[leaked_storage] - this is on purpose
- }
- break;
-
-@@ -892,7 +899,7 @@ extern "C" void SAL_CALL typelib_typedescription_newInterface(
- typelib_TypeDescriptionReference ** ppMembers )
- SAL_THROW_EXTERN_C()
- {
-- // coverity[callee_ptr_arith]
-+ // coverity[callee_ptr_arith] - not a bug
- typelib_typedescription_newMIInterface(
- ppRet, pTypeName, 0, 0, 0, 0, 0, pBaseInterface == nullptr ? 0 : 1,
- &pBaseInterface, nMembers, ppMembers);
-diff --git a/extensions/source/scanner/sanedlg.cxx b/extensions/source/scanner/sanedlg.cxx
-index e515a763af39..d4b4bf9d3156 100644
---- a/extensions/source/scanner/sanedlg.cxx
-+++ b/extensions/source/scanner/sanedlg.cxx
-@@ -495,7 +495,6 @@ void SaneDlg::InitFields()
- pField->SetMax( (long)pDouble[ nValue-1 ] );
- else
- pField->SetMax( (long)pDouble[ 1 ] );
-- delete [] pDouble;
- }
- switch( i ) {
- case 0: aMinTopLeft.X() = pField->GetMin();break;
-@@ -513,6 +512,7 @@ void SaneDlg::InitFields()
- case 3: aMaxBottomRight.Y() = (int)fValue;break;
- }
- }
-+ delete [] pDouble;
- pField->Enable();
- }
- else
-diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
-index 7dbe377697dd..f4b9db25e4e0 100644
---- a/filter/source/svg/presentation_engine.js
-+++ b/filter/source/svg/presentation_engine.js
-@@ -7987,7 +7987,7 @@ AnimationBaseNode3.prototype.info = function( bVerbose )
- sInfo += '; keyTimes: ' + this.getKeyTimes().join( ',' );
-
- // values
-- if( this.getKeyTimes().length )
-+ if( this.getValues().length )
- sInfo += '; values: ' + this.getValues().join( ',' );
-
- // formula
-@@ -12170,7 +12170,6 @@ SlideTransition.prototype.createSlideTransition = function( aLeavingSlide, aEnte
-
- case PUSHWIPE_TRANSITION:
- {
-- var bCombined = false;
- var aDirection = null;
- switch( this.eTransitionSubType )
- {
-@@ -12192,10 +12191,7 @@ SlideTransition.prototype.createSlideTransition = function( aLeavingSlide, aEnte
- aDirection = { x: -1.0, y: 0.0 };
- break;
- }
-- if( bCombined )
-- return null;
-- else
-- return new MovingSlideChange( aLeavingSlide, aEnteringSlide, aDirection, aDirection );
-+ return new MovingSlideChange( aLeavingSlide, aEnteringSlide, aDirection, aDirection );
- }
-
- case SLIDEWIPE_TRANSITION:
-diff --git a/framework/source/accelerators/acceleratorconfiguration.cxx b/framework/source/accelerators/acceleratorconfiguration.cxx
-index ecc33938ab75..6a5a120331c1 100644
---- a/framework/source/accelerators/acceleratorconfiguration.cxx
-+++ b/framework/source/accelerators/acceleratorconfiguration.cxx
-@@ -1125,7 +1125,7 @@ void XCUBasedAcceleratorConfiguration::impl_ts_save(bool bPreferred)
-
- // take over all changes into the original container
- SolarMutexGuard g;
-- // coverity[check_after_deref]
-+ // coverity[check_after_deref] - confusing but correct
- if (m_pPrimaryWriteCache)
- {
- m_aPrimaryReadCache.takeOver(*m_pPrimaryWriteCache);
-@@ -1164,7 +1164,7 @@ void XCUBasedAcceleratorConfiguration::impl_ts_save(bool bPreferred)
-
- // take over all changes into the original container
- SolarMutexGuard g;
-- // coverity[check_after_deref]
-+ // coverity[check_after_deref] - confusing but correct
- if (m_pSecondaryWriteCache)
- {
- m_aSecondaryReadCache.takeOver(*m_pSecondaryWriteCache);
-diff --git a/idlc/source/parser.y b/idlc/source/parser.y
-index 1e873853b46e..592a082d58f8 100644
---- a/idlc/source/parser.y
-+++ b/idlc/source/parser.y
-@@ -2136,7 +2136,7 @@ at_least_one_scoped_name :
- } else
- {
- std::list< OString >* pScopedNames = new std::list< OString >;
-- // coverity [copy_paste_error]
-+ // coverity[copy_paste_error] - this is not a cut and paste
- pScopedNames->push_back(*$1);
- $$ = pScopedNames;
- }
-diff --git a/include/LibreOfficeKit/LibreOfficeKitInit.h b/include/LibreOfficeKit/LibreOfficeKitInit.h
-index a0c111a9e0e2..71f4f2e68b04 100644
---- a/include/LibreOfficeKit/LibreOfficeKitInit.h
-+++ b/include/LibreOfficeKit/LibreOfficeKitInit.h
-@@ -280,13 +280,13 @@ static LibreOfficeKit *lok_init_2( const char *install_path, const char *user_p
- }
- free( imp_lib );
- // dlhandle is "leaked"
-- // coverity[leaked_storage]
-+ // coverity[leaked_storage] - on purpose
- return pSym( install_path );
- }
-
- free( imp_lib );
- // dlhandle is "leaked"
-- // coverity[leaked_storage]
-+ // coverity[leaked_storage] - on purpose
- return pSym2( install_path, user_profile_url );
- }
-
-diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx
-index 66a056448b53..d38aabac32f3 100644
---- a/include/vcl/bitmap.hxx
-+++ b/include/vcl/bitmap.hxx
-@@ -667,9 +667,9 @@ public:
- Bitmap& aNewBitmap,
- BitmapReadAccess const * pReadAcc,
- int aNumberOfContributions,
-- const double* pWeights,
-- int const * pPixels,
-- const int* pCount );
-+ const std::vector& rWeights,
-+ const std::vector& rPixels,
-+ const std::vector& rCounts );
-
- SAL_DLLPRIVATE bool ImplMakeMono( sal_uInt8 cThreshold );
- SAL_DLLPRIVATE bool ImplMakeGreyscales( sal_uInt16 nGreyscales );
-@@ -704,10 +704,10 @@ public:
- SAL_DLLPRIVATE static void ImplBlurContributions(
- const int aSize,
- const int aNumberOfContributions,
-- const double* pBlurVector,
-- double*& pWeights,
-- int*& pPixels,
-- int*& pCount );
-+ const std::vector& rBlurVector,
-+ std::vector& pWeights,
-+ std::vector& rPixels,
-+ std::vector& rCounts );
-
- public:
-
-diff --git a/pyuno/source/module/pyuno_dlopenwrapper.c b/pyuno/source/module/pyuno_dlopenwrapper.c
-index 5654cb0f8f0a..44e711653e35 100644
---- a/pyuno/source/module/pyuno_dlopenwrapper.c
-+++ b/pyuno/source/module/pyuno_dlopenwrapper.c
-@@ -72,6 +72,7 @@ static void * load(void const * address, char const * symbol) {
- dlclose(h);
- abort();
- }
-+ // coverity[leaked_storage] - this is on purpose
- return func;
- }
-
-diff --git a/registry/source/reflwrit.cxx b/registry/source/reflwrit.cxx
-index 45c5ae474a2c..7f82f9cd5172 100644
---- a/registry/source/reflwrit.cxx
-+++ b/registry/source/reflwrit.cxx
-@@ -376,11 +376,11 @@ void FieldEntry::setData(const OString& name,
- RTValueType constValueType,
- RTConstValueUnion constValue)
- {
-- sal_Unicode * newValue = nullptr;
-+ std::unique_ptr newValue;
- if (constValueType == RT_TYPE_STRING && constValue.aString != nullptr) {
- sal_Int32 n = rtl_ustr_getLength(constValue.aString) + 1;
-- newValue = new sal_Unicode[n];
-- memcpy(newValue, constValue.aString, n * sizeof (sal_Unicode));
-+ newValue.reset(new sal_Unicode[n]);
-+ memcpy(newValue.get(), constValue.aString, n * sizeof (sal_Unicode));
- }
-
- m_name = name;
-@@ -406,7 +406,7 @@ void FieldEntry::setData(const OString& name,
- m_constValue.aString = NULL_WSTRING;
- else
- {
-- m_constValue.aString = newValue;
-+ m_constValue.aString = newValue.release();
- }
- }
- else
-diff --git a/registry/source/regimpl.cxx b/registry/source/regimpl.cxx
-index 6dec181933ea..260c7e9d2a7e 100644
---- a/registry/source/regimpl.cxx
-+++ b/registry/source/regimpl.cxx
-@@ -21,6 +21,7 @@
- #include "regimpl.hxx"
-
- #include
-+#include
- #include
- #include
-
-@@ -323,8 +324,7 @@ void dumpType(typereg::Reader const & reader, OString const & indent) {
- printf(
- "%s parameter count: %u\n", indent.getStr(),
- static_cast< unsigned int >(reader.getMethodParameterCount(i)));
-- // coverity[tainted_data] cid#1215304 unhelpfully warns about an
-- // untrusted loop bound here:
-+ // coverity[tainted_data] - cid#1215304 unhelpfully warns about untrusted loop bound
- for (sal_uInt16 j = 0; j < reader.getMethodParameterCount(i); ++j)
- {
- printf(
-@@ -365,8 +365,7 @@ void dumpType(typereg::Reader const & reader, OString const & indent) {
- printf(
- "%s exception count: %u\n", indent.getStr(),
- static_cast< unsigned int >(reader.getMethodExceptionCount(i)));
-- // coverity[tainted_data] cid#1215304 unhelpfully warns about an
-- // untrusted loop bound here:
-+ // coverity[tainted_data] - cid#1215304 unhelpfully warns about untrusted loop bound
- for (sal_uInt16 j = 0; j < reader.getMethodExceptionCount(i); ++j)
- {
- printf(
-@@ -903,7 +902,6 @@ RegError ORegistry::loadAndSaveValue(ORegKey* pTargetKey,
- bool bReport)
- {
- OStoreStream rValue;
-- sal_uInt8* pBuffer;
- RegValueType valueType;
- sal_uInt32 valueSize;
- sal_uInt32 nSize;
-@@ -937,37 +935,32 @@ RegError ORegistry::loadAndSaveValue(ORegKey* pTargetKey,
- return RegError::VALUE_NOT_EXISTS;
- }
-
-- pBuffer = static_cast(rtl_allocateMemory(VALUE_HEADERSIZE));
-+ std::vector aBuffer(VALUE_HEADERSIZE);
-
- sal_uInt32 rwBytes;
-- if (rValue.readAt(0, pBuffer, VALUE_HEADERSIZE, rwBytes))
-+ if (rValue.readAt(0, aBuffer.data(), VALUE_HEADERSIZE, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- if (rwBytes != VALUE_HEADERSIZE)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
- RegError _ret = RegError::NO_ERROR;
-- sal_uInt8 type = *pBuffer;
-- valueType = (RegValueType)type;
-- readUINT32(pBuffer+VALUE_TYPEOFFSET, valueSize);
-- rtl_freeMemory(pBuffer);
-+ sal_uInt8 type = aBuffer[0];
-+ valueType = static_cast(type);
-+ readUINT32(aBuffer.data() + VALUE_TYPEOFFSET, valueSize);
-
- nSize = VALUE_HEADERSIZE + valueSize;
-- pBuffer = static_cast(rtl_allocateMemory(nSize));
-+ aBuffer.resize(nSize);
-
-- if (rValue.readAt(0, pBuffer, nSize, rwBytes))
-+ if (rValue.readAt(0, aBuffer.data(), nSize, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- if (rwBytes != nSize)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
-@@ -978,19 +971,17 @@ RegError ORegistry::loadAndSaveValue(ORegKey* pTargetKey,
- if (valueType == RegValueType::BINARY)
- {
- _ret = checkBlop(
-- rValue, sTargetPath, valueSize, pBuffer+VALUE_HEADEROFFSET,
-+ rValue, sTargetPath, valueSize, aBuffer.data() + VALUE_HEADEROFFSET,
- bReport);
- if (_ret != RegError::NO_ERROR)
- {
- if (_ret == RegError::MERGE_ERROR ||
- (_ret == RegError::MERGE_CONFLICT && bWarnings))
- {
-- rtl_freeMemory(pBuffer);
- return _ret;
- }
- } else
- {
-- rtl_freeMemory(pBuffer);
- return _ret;
- }
- }
-@@ -998,23 +989,19 @@ RegError ORegistry::loadAndSaveValue(ORegKey* pTargetKey,
-
- if (rValue.create(rTargetFile, sTargetPath, valueName, storeAccessMode::Create))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-- if (rValue.writeAt(0, pBuffer, nSize, rwBytes))
-+ if (rValue.writeAt(0, aBuffer.data(), nSize, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
- if (rwBytes != nSize)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- pTargetKey->setModified();
-
-- rtl_freeMemory(pBuffer);
- return _ret;
- }
-
-@@ -1031,33 +1018,30 @@ RegError ORegistry::checkBlop(OStoreStream& rValue,
- return RegError::INVALID_VALUE;
- }
-
-- sal_uInt8* pBuffer = static_cast(rtl_allocateMemory(VALUE_HEADERSIZE));
-+ std::vector aBuffer(VALUE_HEADERSIZE);
- RegValueType valueType;
- sal_uInt32 valueSize;
- sal_uInt32 rwBytes;
- OString targetPath(OUStringToOString(sTargetPath, RTL_TEXTENCODING_UTF8));
-
-- if (!rValue.readAt(0, pBuffer, VALUE_HEADERSIZE, rwBytes) &&
-+ if (!rValue.readAt(0, aBuffer.data(), VALUE_HEADERSIZE, rwBytes) &&
- (rwBytes == VALUE_HEADERSIZE))
- {
-- sal_uInt8 type = *pBuffer;
-- valueType = (RegValueType)type;
-- readUINT32(pBuffer+VALUE_TYPEOFFSET, valueSize);
-- rtl_freeMemory(pBuffer);
-+ sal_uInt8 type = aBuffer[0];
-+ valueType = static_cast(type);
-+ readUINT32(aBuffer.data() + VALUE_TYPEOFFSET, valueSize);
-
- if (valueType == RegValueType::BINARY)
- {
-- pBuffer = static_cast(rtl_allocateMemory(valueSize));
-- if (!rValue.readAt(VALUE_HEADEROFFSET, pBuffer, valueSize, rwBytes) &&
-+ aBuffer.resize(valueSize);
-+ if (!rValue.readAt(VALUE_HEADEROFFSET, aBuffer.data(), valueSize, rwBytes) &&
- (rwBytes == valueSize))
- {
-- RegistryTypeReader reader2(pBuffer, valueSize);
-+ RegistryTypeReader reader2(aBuffer.data(), valueSize);
-
- if ((reader.getTypeClass() != reader2.getTypeClass())
- || reader2.getTypeClass() == RT_TYPE_INVALID)
- {
-- rtl_freeMemory(pBuffer);
--
- if (bReport)
- {
- fprintf(stdout, "ERROR: values of blop from key \"%s\" has different types.\n",
-@@ -1073,22 +1057,17 @@ RegError ORegistry::checkBlop(OStoreStream& rValue,
- {
- mergeModuleValue(rValue, reader, reader2);
-
-- rtl_freeMemory(pBuffer);
- return RegError::NO_ERROR;
- } else
- if (reader2.getFieldCount() > 0)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::NO_ERROR;
- } else
- {
-- rtl_freeMemory(pBuffer);
- return RegError::MERGE_CONFLICT;
- }
- } else
- {
-- rtl_freeMemory(pBuffer);
--
- if (bReport)
- {
- fprintf(stderr, "WARNING: value of key \"%s\" already exists.\n",
-@@ -1098,7 +1077,6 @@ RegError ORegistry::checkBlop(OStoreStream& rValue,
- }
- } else
- {
-- rtl_freeMemory(pBuffer);
- if (bReport)
- {
- fprintf(stderr, "ERROR: values of key \"%s\" contains bad data.\n",
-@@ -1108,7 +1086,6 @@ RegError ORegistry::checkBlop(OStoreStream& rValue,
- }
- } else
- {
-- rtl_freeMemory(pBuffer);
- if (bReport)
- {
- fprintf(stderr, "ERROR: values of key \"%s\" has different types.\n",
-@@ -1118,7 +1095,6 @@ RegError ORegistry::checkBlop(OStoreStream& rValue,
- }
- } else
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- }
-@@ -1189,27 +1165,23 @@ RegError ORegistry::mergeModuleValue(OStoreStream& rTargetValue,
- const sal_uInt8* pBlop = writer.getBlop();
- sal_uInt32 aBlopSize = writer.getBlopSize();
-
-- sal_uInt8 type = (sal_uInt8)RegValueType::BINARY;
-- sal_uInt8* pBuffer = static_cast(rtl_allocateMemory(VALUE_HEADERSIZE + aBlopSize));
-+ sal_uInt8 type = sal_uInt8(RegValueType::BINARY);
-+ std::vector aBuffer(VALUE_HEADERSIZE + aBlopSize);
-
-- memcpy(pBuffer, &type, 1);
-- writeUINT32(pBuffer+VALUE_TYPEOFFSET, aBlopSize);
-- memcpy(pBuffer+VALUE_HEADEROFFSET, pBlop, aBlopSize);
-+ memcpy(aBuffer.data(), &type, 1);
-+ writeUINT32(aBuffer.data() + VALUE_TYPEOFFSET, aBlopSize);
-+ memcpy(aBuffer.data() + VALUE_HEADEROFFSET, pBlop, aBlopSize);
-
- sal_uInt32 rwBytes;
-- if (rTargetValue.writeAt(0, pBuffer, VALUE_HEADERSIZE+aBlopSize, rwBytes))
-+ if (rTargetValue.writeAt(0, aBuffer.data(), VALUE_HEADERSIZE+aBlopSize, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
- if (rwBytes != VALUE_HEADERSIZE+aBlopSize)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
--
-- rtl_freeMemory(pBuffer);
- }
- return RegError::NO_ERROR;
- }
-@@ -1325,7 +1297,6 @@ RegError ORegistry::dumpRegistry(RegKeyHandle hKey) const
- RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_Int16 nSpc) const
- {
- OStoreStream rValue;
-- sal_uInt8* pBuffer;
- sal_uInt32 valueSize;
- RegValueType valueType;
- OUString sFullPath(sPath);
-@@ -1348,33 +1319,29 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- return RegError::VALUE_NOT_EXISTS;
- }
-
-- pBuffer = static_cast(rtl_allocateMemory(VALUE_HEADERSIZE));
-+ std::vector aBuffer(VALUE_HEADERSIZE);
-
- sal_uInt32 rwBytes;
-- if (rValue.readAt(0, pBuffer, VALUE_HEADERSIZE, rwBytes))
-+ if (rValue.readAt(0, aBuffer.data(), VALUE_HEADERSIZE, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- if (rwBytes != (VALUE_HEADERSIZE))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
-- sal_uInt8 type = *pBuffer;
-- valueType = (RegValueType)type;
-- readUINT32(pBuffer+VALUE_TYPEOFFSET, valueSize);
-+ sal_uInt8 type = aBuffer[0];
-+ valueType = static_cast(type);
-+ readUINT32(aBuffer.data() + VALUE_TYPEOFFSET, valueSize);
-
-- pBuffer = static_cast(rtl_allocateMemory(valueSize));
-- if (rValue.readAt(VALUE_HEADEROFFSET, pBuffer, valueSize, rwBytes))
-+ aBuffer.resize(valueSize);
-+ if (rValue.readAt(VALUE_HEADEROFFSET, aBuffer.data(), valueSize, rwBytes))
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
- if (rwBytes != valueSize)
- {
-- rtl_freeMemory(pBuffer);
- return RegError::INVALID_VALUE;
- }
-
-@@ -1393,14 +1360,14 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- fprintf(stdout, "%s Data = ", indent);
-
- sal_Int32 value;
-- readINT32(pBuffer, value);
-+ readINT32(aBuffer.data(), value);
- fprintf(stdout, "%ld\n", sal::static_int_cast< long >(value));
- }
- break;
- case RegValueType::STRING:
- {
- sal_Char* value = static_cast(rtl_allocateMemory(valueSize));
-- readUtf8(pBuffer, value, valueSize);
-+ readUtf8(aBuffer.data(), value, valueSize);
- fprintf(stdout, "%sValue: Type = RegValueType::STRING\n", indent);
- fprintf(
- stdout, "%s Size = %lu\n", indent,
-@@ -1419,7 +1386,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- fprintf(stdout, "%s Data = ", indent);
-
- std::unique_ptr value(new sal_Unicode[size]);
-- readString(pBuffer, value.get(), size);
-+ readString(aBuffer.data(), value.get(), size);
-
- OString uStr = OUStringToOString(value.get(), RTL_TEXTENCODING_UTF8);
- fprintf(stdout, "L\"%s\"\n", uStr.getStr());
-@@ -1433,7 +1400,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- sal::static_int_cast< unsigned long >(valueSize));
- fprintf(stdout, "%s Data = ", indent);
- dumpType(
-- typereg::Reader(pBuffer, valueSize),
-+ typereg::Reader(aBuffer.data(), valueSize),
- sIndent + " ");
- }
- break;
-@@ -1442,7 +1409,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- sal_uInt32 offset = 4; // initial 4 bytes for the size of the array
- sal_uInt32 len = 0;
-
-- readUINT32(pBuffer, len);
-+ readUINT32(aBuffer.data(), len);
-
- fprintf(stdout, "%sValue: Type = RegValueType::LONGLIST\n", indent);
- fprintf(
-@@ -1456,7 +1423,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- sal_Int32 longValue;
- for (sal_uInt32 i=0; i < len; i++)
- {
-- readINT32(pBuffer+offset, longValue);
-+ readINT32(aBuffer.data() + offset, longValue);
-
- if (offset > 4)
- fprintf(stdout, "%s ", indent);
-@@ -1475,7 +1442,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- sal_uInt32 sLen = 0;
- sal_uInt32 len = 0;
-
-- readUINT32(pBuffer, len);
-+ readUINT32(aBuffer.data(), len);
-
- fprintf(stdout, "%sValue: Type = RegValueType::STRINGLIST\n", indent);
- fprintf(
-@@ -1488,12 +1455,12 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
-
- for (sal_uInt32 i=0; i < len; i++)
- {
-- readUINT32(pBuffer+offset, sLen);
-+ readUINT32(aBuffer.data() + offset, sLen);
-
- offset += 4; // 4 bytes (sal_uInt32) for the string size
-
- sal_Char *pValue = static_cast(rtl_allocateMemory(sLen));
-- readUtf8(pBuffer+offset, pValue, sLen);
-+ readUtf8(aBuffer.data() + offset, pValue, sLen);
-
- if (offset > 8)
- fprintf(stdout, "%s ", indent);
-@@ -1512,7 +1479,7 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- sal_uInt32 sLen = 0;
- sal_uInt32 len = 0;
-
-- readUINT32(pBuffer, len);
-+ readUINT32(aBuffer.data(), len);
-
- fprintf(stdout, "%sValue: Type = RegValueType::UNICODELIST\n", indent);
- fprintf(
-@@ -1526,12 +1493,12 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
- OString uStr;
- for (sal_uInt32 i=0; i < len; i++)
- {
-- readUINT32(pBuffer+offset, sLen);
-+ readUINT32(aBuffer.data() + offset, sLen);
-
- offset += 4; // 4 bytes (sal_uInt32) for the string size
-
- sal_Unicode *pValue = static_cast(rtl_allocateMemory((sLen / 2) * sizeof(sal_Unicode)));
-- readString(pBuffer+offset, pValue, sLen);
-+ readString(aBuffer.data() + offset, pValue, sLen);
-
- if (offset > 8)
- fprintf(stdout, "%s ", indent);
-@@ -1552,7 +1519,6 @@ RegError ORegistry::dumpValue(const OUString& sPath, const OUString& sName, sal_
-
- fprintf(stdout, "\n");
-
-- rtl_freeMemory(pBuffer);
- return RegError::NO_ERROR;
- }
-
-diff --git a/sal/osl/unx/file.cxx b/sal/osl/unx/file.cxx
-index de36b3d26a9c..d2b59dfb2851 100644
---- a/sal/osl/unx/file.cxx
-+++ b/sal/osl/unx/file.cxx
-@@ -1148,10 +1148,10 @@ const off_t MAX_OFF_T = std::numeric_limits< off_t >::max();
-
- namespace {
-
--//coverity[result_independent_of_operands]
-+// coverity[result_independent_of_operands] - crossplatform requirement
- template bool exceedsMaxOffT(T n) { return n > MAX_OFF_T; }
-
--//coverity[result_independent_of_operands]
-+// coverity[result_independent_of_operands] - crossplatform requirement
- template bool exceedsMinOffT(T n)
- { return n < std::numeric_limits::min(); }
-
-diff --git a/sal/osl/unx/pipe.cxx b/sal/osl/unx/pipe.cxx
-index e577e89608ba..aae01fd36439 100644
---- a/sal/osl/unx/pipe.cxx
-+++ b/sal/osl/unx/pipe.cxx
-@@ -287,10 +287,11 @@ oslPipe SAL_CALL osl_psz_createPipe(const sal_Char *pszPipeName, oslPipeOptions
- if (listen(pPipe->m_Socket, 5) < 0)
- {
- SAL_WARN("sal.osl.pipe", "listen() failed: " << strerror(errno));
-- // coverity[toctou] cid#1255391 warns about unlink(name) after
-- // stat(name, &status) above, but the intervening call to bind makes
-- // those two clearly unrelated, as it would fail if name existed at
-- // that point in time:
-+ // cid#1255391 warns about unlink(name) after stat(name, &status)
-+ // above, but the intervening call to bind makes those two clearly
-+ // unrelated, as it would fail if name existed at that point in
-+ // time:
-+ // coverity[toctou] - this is bogus
- unlink(name); /* remove filesystem entry */
- close(pPipe->m_Socket);
- destroyPipeImpl(pPipe);
-diff --git a/sal/osl/unx/profile.cxx b/sal/osl/unx/profile.cxx
-index a3d029e94da2..0671a80d264d 100644
---- a/sal/osl/unx/profile.cxx
-+++ b/sal/osl/unx/profile.cxx
-@@ -181,6 +181,7 @@ static oslProfile SAL_CALL osl_psz_openProfile(const sal_Char *pszProfileName, o
- if (pProfile->m_pFile == nullptr)
- closeFileImpl(pFile,pProfile->m_Flags);
-
-+ // coverity[leaked_storage] - pFile is not leaked
- return pProfile;
- }
-
-diff --git a/sal/osl/w32/file.cxx b/sal/osl/w32/file.cxx
-index 7c0b6674c23f..106e160f894e 100644
---- a/sal/osl/w32/file.cxx
-+++ b/sal/osl/w32/file.cxx
-@@ -776,7 +776,7 @@ oslFileError SAL_CALL osl_closeFile(oslFileHandle Handle)
-
- namespace {
-
--//coverity[result_independent_of_operands]
-+// coverity[result_independent_of_operands] - crossplatform requirement
- template bool exceedsMaxSIZE_T(T n)
- { return n > std::numeric_limits< SIZE_T >::max(); }
-
-@@ -930,7 +930,7 @@ LONGLONG const g_limit_longlong = std::numeric_limits< LONGLONG >::max();
-
- namespace {
-
--//coverity[result_independent_of_operands]
-+// coverity[result_independent_of_operands] - crossplatform requirement
- template bool exceedsMaxLONGLONG(T n)
- { return n > g_limit_longlong; }
-
-diff --git a/sal/rtl/alloc_arena.cxx b/sal/rtl/alloc_arena.cxx
-index 373de6d51ad9..4967fac93293 100644
---- a/sal/rtl/alloc_arena.cxx
-+++ b/sal/rtl/alloc_arena.cxx
-@@ -258,7 +258,7 @@ void rtl_arena_hash_rescale(
- rtl_arena_segment_type * next = curr->m_fnext;
- rtl_arena_segment_type ** head;
-
-- // coverity[negative_shift]
-+ // coverity[negative_shift] - bogus
- head = &(arena->m_hash_table[RTL_ARENA_HASH_INDEX(arena, curr->m_addr)]);
- curr->m_fnext = (*head);
- (*head) = curr;
-diff --git a/sal/rtl/alloc_cache.cxx b/sal/rtl/alloc_cache.cxx
-index 091a5bf774ee..6ffc506e2a6e 100644
---- a/sal/rtl/alloc_cache.cxx
-+++ b/sal/rtl/alloc_cache.cxx
-@@ -829,7 +829,7 @@ void rtl_cache_deactivate(rtl_cache_type * cache)
- /* cleanup cpu layer */
- if ((mag = cache->m_cpu_curr))
- {
-- // coverity[missing_lock]
-+ // coverity[missing_lock] - locking is fine
- cache->m_cpu_curr = nullptr;
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
-@@ -837,7 +837,7 @@ void rtl_cache_deactivate(rtl_cache_type * cache)
-
- if ((mag = cache->m_cpu_prev))
- {
-- // coverity[missing_lock]
-+ // coverity[missing_lock] - locking is fine
- cache->m_cpu_prev = nullptr;
- rtl_cache_magazine_clear (cache, mag);
- rtl_cache_free (mag_cache, mag);
-@@ -1279,7 +1279,7 @@ static void rtl_cache_depot_wsupdate(
- RTL_MEMORY_LOCK_ACQUIRE(&(cache->m_depot_lock));
- }
- }
-- // coverity[missing_unlock]
-+ // coverity[missing_unlock] - locking is fine
- }
-
- /**
-diff --git a/sc/inc/dpobject.hxx b/sc/inc/dpobject.hxx
-index 39299c79ab26..814ad49e86c3 100644
---- a/sc/inc/dpobject.hxx
-+++ b/sc/inc/dpobject.hxx
-@@ -391,7 +391,7 @@ public:
- OUString CreateNewName() const;
-
- void FreeTable(const ScDPObject* pDPObj);
-- SC_DLLPUBLIC bool InsertNewTable(ScDPObject* pDPObj);
-+ SC_DLLPUBLIC void InsertNewTable(ScDPObject* pDPObj);
- SC_DLLPUBLIC bool HasTable(const ScDPObject* pDPObj) const;
-
- SC_DLLPUBLIC SheetCaches& GetSheetCaches();
-diff --git a/sc/qa/unit/ucalc_pivottable.cxx b/sc/qa/unit/ucalc_pivottable.cxx
-index 404de5d06c14..dbf991387fef 100644
---- a/sc/qa/unit/ucalc_pivottable.cxx
-+++ b/sc/qa/unit/ucalc_pivottable.cxx
-@@ -221,8 +221,7 @@ void Test::testPivotTable()
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -247,7 +246,7 @@ void Test::testPivotTable()
- { "Total Result", "50", "57", "23", "130" }
- };
-
-- bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
- CPPUNIT_ASSERT_EQUAL_MESSAGE("There should be only one data cache.", size_t(1), pDPs->GetSheetCaches().size());
-@@ -285,7 +284,7 @@ void Test::testPivotTable()
- { "Total Result", "50", "57", "23", "130" }
- };
-
-- bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (from old cache)");
-+ bool bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (from old cache)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -322,7 +321,7 @@ void Test::testPivotTable()
- { "Total Result", "300", "700", "1100", "2100" }
- };
-
-- bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (refreshed)");
-+ bool bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (refreshed)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -351,8 +350,7 @@ void Test::testPivotTable()
-
- pDPObj = createDPFromRange(
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, false);
-- bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -402,8 +400,7 @@ void Test::testPivotTableLabels()
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -418,7 +415,7 @@ void Test::testPivotTableLabels()
- { "Total Result", "30", "20", "45", "95" }
- };
-
-- bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -458,8 +455,7 @@ void Test::testPivotTableDateLabels()
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -476,7 +472,7 @@ void Test::testPivotTableDateLabels()
- { "Total Result", "30", "20", "45", "95" }
- };
-
-- bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<5>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -541,8 +537,7 @@ void Test::testPivotTableFilters()
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, true);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -559,7 +554,7 @@ void Test::testPivotTableFilters()
- { "Sum - Val2", "80" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (unfiltered)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (unfiltered)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -593,7 +588,7 @@ void Test::testPivotTableFilters()
- { "Sum - Val2", "40" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by page)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by page)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -622,7 +617,7 @@ void Test::testPivotTableFilters()
- { "Sum - Val2", "20" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by query)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by query)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -645,7 +640,7 @@ void Test::testPivotTableFilters()
- { "Sum - Val2", "40" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by page)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output (filtered by page)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -701,8 +696,7 @@ void Test::testPivotTableNamedSource()
- CPPUNIT_ASSERT_MESSAGE("Failed to create a new pivot table object.", pDPObj);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -977,9 +971,7 @@ void Test::testPivotTableDuplicateDataFields()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -997,7 +989,7 @@ void Test::testPivotTableDuplicateDataFields()
- { "Total Count - Value", nullptr, "10" },
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1021,7 +1013,7 @@ void Test::testPivotTableDuplicateDataFields()
- { "Total Result", "411", "10" }
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1070,9 +1062,7 @@ void Test::testPivotTableNormalGrouping()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1092,7 +1082,7 @@ void Test::testPivotTableNormalGrouping()
- { "Total Result", "28" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Initial output without grouping");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Initial output without grouping");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1140,7 +1130,7 @@ void Test::testPivotTableNormalGrouping()
- { "Total Result", nullptr, "28" }
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "A, B, C grouped by Group1.");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "A, B, C grouped by Group1.");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1177,7 +1167,7 @@ void Test::testPivotTableNormalGrouping()
- { "Total Result", nullptr, "28" }
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "D, E, F grouped by Group2.");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "D, E, F grouped by Group2.");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1232,9 +1222,7 @@ void Test::testPivotTableNumberGrouping()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1272,7 +1260,7 @@ void Test::testPivotTableNumberGrouping()
- { "Total Result", "1389" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Order grouped by numbers");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Order grouped by numbers");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1317,9 +1305,7 @@ void Test::testPivotTableDateGrouping()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1389,7 +1375,7 @@ void Test::testPivotTableDateGrouping()
- { "Total Result", nullptr, nullptr, "36" },
- };
-
-- bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Years, quarters and months date groups.");
-+ bool bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Years, quarters and months date groups.");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1417,7 +1403,7 @@ void Test::testPivotTableDateGrouping()
- { "Total Result", nullptr, nullptr, "10" },
- };
-
-- bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Year 2012 data now hidden");
-+ bool bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Year 2012 data now hidden");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1446,7 +1432,7 @@ void Test::testPivotTableDateGrouping()
- { "Total Result", "36" }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Remove all date grouping.");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Remove all date grouping.");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1490,9 +1476,7 @@ void Test::testPivotTableEmptyRows()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1511,7 +1495,7 @@ void Test::testPivotTableEmptyRows()
- { "Total Result", "10" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Include empty rows");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Include empty rows");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1533,7 +1517,7 @@ void Test::testPivotTableEmptyRows()
- { "Total Result", "10" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Ignore empty rows");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Ignore empty rows");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1559,7 +1543,7 @@ void Test::testPivotTableEmptyRows()
- { "Total Result", "10" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Ignore empty rows");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Ignore empty rows");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1617,9 +1601,7 @@ void Test::testPivotTableTextNumber()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1637,7 +1619,7 @@ void Test::testPivotTableTextNumber()
- { "Total Result", "10" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Text number field members");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Text number field members");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1662,7 +1644,7 @@ void Test::testPivotTableTextNumber()
- { "4", nullptr }
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Text number field members");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Text number field members");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1701,9 +1683,7 @@ void Test::testPivotTableCaseInsensitiveStrings()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1718,7 +1698,7 @@ void Test::testPivotTableCaseInsensitiveStrings()
- { "Total Result", "3" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Case insensitive strings");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Case insensitive strings");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1792,9 +1772,7 @@ void Test::testPivotTableNumStability()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1864,9 +1842,7 @@ void Test::testPivotTableFieldReference()
- m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -1884,7 +1860,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", "15" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (none)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (none)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1911,7 +1887,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", nullptr },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (difference from)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (difference from)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1931,7 +1907,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", nullptr },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% of)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% of)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1951,7 +1927,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", nullptr },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% difference from)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% difference from)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1971,7 +1947,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", nullptr },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (Running total)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (Running total)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -1991,7 +1967,7 @@ void Test::testPivotTableFieldReference()
- { "Total Result", "100.00%" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% of column)");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Field reference (% of column)");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -2105,9 +2081,7 @@ void Test::testFuncGETPIVOTDATA()
- }
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -2122,7 +2096,7 @@ void Test::testFuncGETPIVOTDATA()
- { "Total Result", "21" },
- };
-
-- bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Pivot table created for GETPIVOTDATA");
-+ bool bSuccess = checkDPTableOutput<2>(m_pDoc, aOutRange, aOutputCheck, "Pivot table created for GETPIVOTDATA");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -2168,8 +2142,7 @@ void Test::testFuncGETPIVOTDATA()
- pDPObj = createDPFromRange(m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
- }
-
-- bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("InsertNewTable failed", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- aOutRange = refresh(pDPObj);
-
- {
-@@ -2184,7 +2157,7 @@ void Test::testFuncGETPIVOTDATA()
- { "Total Count - Value", nullptr, "6" },
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "Pivot table refreshed");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "Pivot table refreshed");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -2264,9 +2237,7 @@ void Test::testFuncGETPIVOTDATALeafAccess()
- pDPObj = createDPFromRange(m_pDoc, aDataRange, aFields, SAL_N_ELEMENTS(aFields), false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
--
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new pivot table object into document.", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -2283,7 +2254,7 @@ void Test::testFuncGETPIVOTDATALeafAccess()
- { "Total Result", nullptr, "10" },
- };
-
-- bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "Pivot table refreshed");
-+ bool bSuccess = checkDPTableOutput<3>(m_pDoc, aOutRange, aOutputCheck, "Pivot table refreshed");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -2361,8 +2332,7 @@ void Test::testPivotTableRepeatItemLabels()
- m_pDoc, ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0), aFields, nFieldCount, false);
-
- ScDPCollection* pDPs = m_pDoc->GetDPCollection();
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new datapilot object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.",
- size_t(1), pDPs->GetCount());
- pDPObj->SetName(pDPs->CreateNewName());
-@@ -2388,7 +2358,7 @@ void Test::testPivotTableRepeatItemLabels()
- { "Total Result", nullptr, nullptr, "220" }
- };
-
-- bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
-+ bool bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "DataPilot table output");
- CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
- }
-
-@@ -2442,15 +2412,13 @@ void Test::testPivotTableDPCollection()
-
- // Add 2 DP objects
- ScDPObject* pDPObj = createDPFromRange(m_pDoc, aDataRange , aFields, nFieldCount, false);
-- bool bSuccess = pDPs->InsertNewTable(pDPObj);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new DP object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj);
- pDPObj->SetName("DP1"); // set custom name
-
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be only one data pilot table.", size_t(1), pDPs->GetCount());
-
- ScDPObject* pDPObj2 = createDPFromRange(m_pDoc, aDataRange, aFields, nFieldCount, false);
-- bSuccess = pDPs->InsertNewTable(pDPObj2);
-- CPPUNIT_ASSERT_MESSAGE("failed to insert a new DP object into document", bSuccess);
-+ pDPs->InsertNewTable(pDPObj2);
- pDPObj2->SetName("DP2"); // set custom name
-
- CPPUNIT_ASSERT_EQUAL_MESSAGE("there should be two DP tables", size_t(2), pDPs->GetCount());
-diff --git a/sc/source/core/data/dpobject.cxx b/sc/source/core/data/dpobject.cxx
-index f86a608b156e..1cc9cf20f2ec 100644
---- a/sc/source/core/data/dpobject.cxx
-+++ b/sc/source/core/data/dpobject.cxx
-@@ -3797,7 +3797,7 @@ void ScDPCollection::FreeTable(const ScDPObject* pDPObject)
- maTables.erase(std::remove_if(maTables.begin(), maTables.end(), funcRemoveCondition), maTables.end());
- }
-
--bool ScDPCollection::InsertNewTable(ScDPObject* pDPObj)
-+void ScDPCollection::InsertNewTable(ScDPObject* pDPObj)
- {
- const ScRange& rOutRange = pDPObj->GetOutRange();
- const ScAddress& s = rOutRange.aStart;
-@@ -3805,7 +3805,6 @@ bool ScDPCollection::InsertNewTable(ScDPObject* pDPObj)
- mpDoc->ApplyFlagsTab(s.Col(), s.Row(), e.Col(), e.Row(), s.Tab(), ScMF::DpTable);
-
- maTables.push_back(std::unique_ptr(pDPObj));
-- return true;
- }
-
- bool ScDPCollection::HasTable(const ScDPObject* pDPObj) const
-diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
-index 67fe8aee6c41..1e461fed1ff4 100644
---- a/sc/source/core/tool/chgtrack.cxx
-+++ b/sc/source/core/tool/chgtrack.cxx
-@@ -339,8 +339,11 @@ bool ScChangeAction::IsDeletedIn( const ScChangeAction* p ) const
- void ScChangeAction::RemoveAllDeletedIn()
- {
- //TODO: Not from TopContent, but really this one
-- while ( pLinkDeletedIn )
-- delete pLinkDeletedIn; // Moves up by itself
-+ while (pLinkDeletedIn)
-+ {
-+ // coverity[use_after_free] - Moves up by itself
-+ delete pLinkDeletedIn;
-+ }
- }
-
- bool ScChangeAction::IsDeletedInDelType( ScChangeActionType eDelType ) const
-@@ -399,8 +402,11 @@ void ScChangeAction::SetDeletedIn( ScChangeAction* p )
-
- void ScChangeAction::RemoveAllDependent()
- {
-- while ( pLinkDependent )
-- delete pLinkDependent; // Moves up by itself
-+ while (pLinkDependent)
-+ {
-+ // coverity[use_after_free] - Moves up by itself
-+ delete pLinkDependent;
-+ }
- }
-
- DateTime ScChangeAction::GetDateTime() const
-@@ -828,8 +834,11 @@ ScChangeActionDel::ScChangeActionDel(
- ScChangeActionDel::~ScChangeActionDel()
- {
- DeleteCellEntries();
-- while ( pLinkMove )
-+ while (pLinkMove)
-+ {
-+ // coverity[use_after_free] - Moves up by itself
- delete pLinkMove;
-+ }
- }
-
- void ScChangeActionDel::AddContent( ScChangeActionContent* pContent )
-@@ -1054,6 +1063,7 @@ void ScChangeActionDel::UndoCutOffMoves()
- { // Restore cut off Moves; delete Entries/Links
- while ( pLinkMove )
- {
-+ // coverity[deref_arg] - the call on delete pLinkMove at the block end Moves a new entry into pLinkMode by itself
- ScChangeActionMove* pMove = pLinkMove->GetMove();
- short nFrom = pLinkMove->GetCutOffFrom();
- short nTo = pLinkMove->GetCutOffTo();
-diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
-index 9e9edb77dc7a..58e3bbb69976 100644
---- a/sc/source/core/tool/compiler.cxx
-+++ b/sc/source/core/tool/compiler.cxx
-@@ -5697,6 +5697,7 @@ bool ScCompiler::HandleTableRef()
- default:
- ; // nothing
- }
-+ // coverity[copy_paste_error] - this is correct, aStart in both aDBRange uses
- if (aColRange.aStart.Row() != aDBRange.aStart.Row() || aColRange.aEnd.Row() != aDBRange.aStart.Row())
- aRange = ScRange( ScAddress::INITIALIZE_INVALID);
- else
-diff --git a/sc/source/filter/xml/xmldpimp.cxx b/sc/source/filter/xml/xmldpimp.cxx
-index c6d3581ca7a3..27c8804f8961 100644
---- a/sc/source/filter/xml/xmldpimp.cxx
-+++ b/sc/source/filter/xml/xmldpimp.cxx
-@@ -96,7 +96,7 @@ ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport,
- const rtl::Reference& rAttrList ) :
- ScXMLImportContext( rImport ),
- pDoc(GetScImport().GetDocument()),
-- pDPObject(nullptr),
-+ pDPSave(new ScDPSaveData()),
- pDPDimSaveData(nullptr),
- sDataPilotTableName(),
- sApplicationData(),
-@@ -194,9 +194,6 @@ ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport,
- }
- }
- }
--
-- pDPObject = new ScDPObject(pDoc);
-- pDPSave.reset(new ScDPSaveData());
- }
-
- ScXMLDataPilotTableContext::~ScXMLDataPilotTableContext()
-@@ -322,7 +319,7 @@ ScDPOutputGeometry::FieldType toFieldType(sheet::DataPilotFieldOrientation nOrie
-
- }
-
--void ScXMLDataPilotTableContext::SetButtons()
-+void ScXMLDataPilotTableContext::SetButtons(ScDPObject* pDPObject)
- {
- ScDPOutputGeometry aGeometry(aTargetRangeAddress, bShowFilter);
- aGeometry.setColumnFieldCount(mnColFieldCount);
-@@ -390,8 +387,7 @@ void ScXMLDataPilotTableContext::SetButtons()
- }
- }
-
-- if ( pDPObject )
-- pDPObject->RefreshAfterLoad();
-+ pDPObject->RefreshAfterLoad();
- }
-
- void ScXMLDataPilotTableContext::SetSelectedPage( const OUString& rDimName, const OUString& rSelected )
-@@ -455,6 +451,7 @@ void SAL_CALL ScXMLDataPilotTableContext::endFastElement( sal_Int32 /*nElement*/
- if (!bTargetRangeAddress)
- return;
-
-+ ScDPObject* pDPObject(new ScDPObject(pDoc));
- pDPObject->SetName(sDataPilotTableName);
- pDPObject->SetTag(sApplicationData);
- pDPObject->SetOutRange(aTargetRangeAddress);
-@@ -540,13 +537,9 @@ void SAL_CALL ScXMLDataPilotTableContext::endFastElement( sal_Int32 /*nElement*/
- if ( pDPCollection->GetByName(pDPObject->GetName()) )
- pDPObject->SetName( OUString() ); // ignore the invalid name, create a new name in AfterXMLLoading
-
-- if (!pDPCollection->InsertNewTable(pDPObject))
-- {
-- OSL_FAIL("cannot insert DPObject");
-- DELETEZ( pDPObject );
-- }
-+ pDPCollection->InsertNewTable(pDPObject);
-
-- SetButtons();
-+ SetButtons(pDPObject);
- }
-
- void ScXMLDataPilotTableContext::SetGrandTotal(
-diff --git a/sc/source/filter/xml/xmldpimp.hxx b/sc/source/filter/xml/xmldpimp.hxx
-index 9cc139e0f08f..3c9ff0911ce8 100644
---- a/sc/source/filter/xml/xmldpimp.hxx
-+++ b/sc/source/filter/xml/xmldpimp.hxx
-@@ -71,7 +71,6 @@ class ScXMLDataPilotTableContext : public ScXMLImportContext
- GrandTotalItem();
- };
- ScDocument* pDoc;
-- ScDPObject* pDPObject;
- std::unique_ptr pDPSave;
- std::unique_ptr pDPDimSaveData;
- GrandTotalItem maRowGrandTotal;
-@@ -139,7 +138,7 @@ public:
- void AddDimension(ScDPSaveDimension* pDim);
- void AddGroupDim(const ScDPSaveNumGroupDimension& aNumGroupDim);
- void AddGroupDim(const ScDPSaveGroupDimension& aGroupDim);
-- void SetButtons();
-+ void SetButtons(ScDPObject* pDPObject);
- void SetSelectedPage( const OUString& rDimName, const OUString& rSelected );
- };
-
-diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
-index d518ff17c03a..ed6fa69b0d08 100644
---- a/sc/source/ui/docshell/dbdocfun.cxx
-+++ b/sc/source/ui/docshell/dbdocfun.cxx
-@@ -1431,9 +1431,7 @@ bool ScDBDocFunc::CreatePivotTable(const ScDPObject& rDPObj, bool bRecord, bool
- }
- }
-
-- if (!rDoc.GetDPCollection()->InsertNewTable(pDestObj.release()))
-- // Insertion into collection failed.
-- return false;
-+ rDoc.GetDPCollection()->InsertNewTable(pDestObj.release());
-
- rDestObj.ReloadGroupTableData();
- rDestObj.SyncAllDimensionMembers();
-diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
-index b7a745a87d98..c84d38cc8c80 100644
---- a/sc/source/ui/undo/undodat.cxx
-+++ b/sc/source/ui/undo/undodat.cxx
-@@ -1442,11 +1442,7 @@ void ScUndoDataPilot::Undo()
- // re-insert deleted object
-
- ScDPObject* pDestObj = new ScDPObject(*xOldDPObject);
-- if ( !rDoc.GetDPCollection()->InsertNewTable(pDestObj) )
-- {
-- OSL_FAIL("cannot insert DPObject");
-- DELETEZ( pDestObj );
-- }
-+ rDoc.GetDPCollection()->InsertNewTable(pDestObj);
- }
-
- if (xNewUndoDoc)
-diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
-index e28704470b4e..8564c988336e 100644
---- a/sc/source/ui/view/viewdata.cxx
-+++ b/sc/source/ui/view/viewdata.cxx
-@@ -176,6 +176,7 @@ ScPositionHelper::getNearestByIndex(index_type nIndex) const
- }
-
- auto posLB = std::prev(posUB);
-+ // coverity[copy_paste_error] - posUB is correct
- if (posUB == mData.end())
- {
- return *posLB;
-@@ -206,6 +207,7 @@ ScPositionHelper::getNearestByPosition(long nPos) const
- }
-
- auto posLB = std::prev(posUB);
-+ // coverity[copy_paste_error] - posUB is correct
- if (posUB == mData.end())
- {
- return *posLB;
-diff --git a/sd/source/ui/animations/CustomAnimationPane.cxx b/sd/source/ui/animations/CustomAnimationPane.cxx
-index c00aedf6c607..14bc19266ed2 100644
---- a/sd/source/ui/animations/CustomAnimationPane.cxx
-+++ b/sd/source/ui/animations/CustomAnimationPane.cxx
-@@ -2312,6 +2312,7 @@ void CustomAnimationPane::moveSelection( bool bUp )
- CustomAnimationEffectPtr pEffect = (*aIter++);
-
- EffectSequence::iterator aUpEffectPos( pSequence->find( pEffect ) );
-+ // coverity[copy_paste_error] - this is correct, checking if it exists
- if( aUpEffectPos != rEffectSequence.end() )
- {
- EffectSequence::iterator aInsertPos( rEffectSequence.erase( aUpEffectPos ) );
-@@ -2342,6 +2343,7 @@ void CustomAnimationPane::moveSelection( bool bUp )
- CustomAnimationEffectPtr pEffect = (*aIter++);
-
- EffectSequence::iterator aDownEffectPos( pSequence->find( pEffect ) );
-+ // coverity[copy_paste_error] - this is correct, checking if it exists
- if( aDownEffectPos != rEffectSequence.end() )
- {
- EffectSequence::iterator aInsertPos( rEffectSequence.erase( aDownEffectPos ) );
-diff --git a/sd/source/ui/unoidl/unosrch.cxx b/sd/source/ui/unoidl/unosrch.cxx
-index a254bbe4a8b6..737710bcf4b2 100644
---- a/sd/source/ui/unoidl/unosrch.cxx
-+++ b/sd/source/ui/unoidl/unosrch.cxx
-@@ -56,11 +56,10 @@ class SearchContext_impl
- {
- uno::Reference< drawing::XShapes > mxShapes;
- sal_Int32 mnIndex;
-- SearchContext_impl* mpParent;
-
- public:
-- SearchContext_impl( uno::Reference< drawing::XShapes > const & xShapes, SearchContext_impl* pParent = nullptr )
-- : mxShapes( xShapes ), mnIndex( -1 ), mpParent( pParent ) {}
-+ SearchContext_impl(uno::Reference const& xShapes)
-+ : mxShapes( xShapes ), mnIndex( -1 ) {}
-
- uno::Reference< drawing::XShape > firstShape()
- {
-@@ -78,8 +77,6 @@ public:
- }
- return xShape;
- }
--
-- SearchContext_impl* getParent() const { return mpParent; }
- };
-
- /* ================================================================= */
-@@ -113,7 +110,7 @@ sal_Int32 SAL_CALL SdUnoSearchReplaceShape::replaceAll( const uno::Reference< ut
- uno::Reference< drawing::XShapes > xShapes;
- uno::Reference< drawing::XShape > xShape;
-
-- SearchContext_impl* pContext = nullptr;
-+ std::vector aContexts;
- if(mpPage)
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
-@@ -122,8 +119,8 @@ sal_Int32 SAL_CALL SdUnoSearchReplaceShape::replaceAll( const uno::Reference< ut
-
- if( xShapes.is() && (xShapes->getCount() > 0) )
- {
-- pContext = new SearchContext_impl( xShapes );
-- xShape = pContext->firstShape();
-+ aContexts.push_back(SearchContext_impl(xShapes));
-+ xShape = aContexts.back().firstShape();
- }
- else
- {
-@@ -154,34 +151,24 @@ sal_Int32 SAL_CALL SdUnoSearchReplaceShape::replaceAll( const uno::Reference< ut
- uno::Reference< drawing::XShapes > xGroupShape( xShape, uno::UNO_QUERY );
- if( xGroupShape.is() && ( xGroupShape->getCount() > 0 ) )
- {
-- pContext = new SearchContext_impl( xGroupShape, pContext );
-- xShape = pContext->firstShape();
-+ aContexts.push_back(SearchContext_impl(xGroupShape));
-+ xShape = aContexts.back().firstShape();
- }
- else
- {
-- if( pContext )
-- xShape = pContext->nextShape();
-+ if (!aContexts.empty())
-+ xShape = aContexts.back().nextShape();
- else
- xShape = nullptr;
- }
-
- // test parent contexts for next shape if none
- // is found in the current context
-- while( pContext && !xShape.is() )
-+ while (!aContexts.empty() && !xShape.is())
- {
-- if( pContext->getParent() )
-- {
-- SearchContext_impl* pOldContext = pContext;
-- pContext = pContext->getParent();
-- delete pOldContext;
-- xShape = pContext->nextShape();
-- }
-- else
-- {
-- delete pContext;
-- pContext = nullptr;
-- xShape = nullptr;
-- }
-+ aContexts.pop_back();
-+ if (!aContexts.empty())
-+ xShape = aContexts.back().nextShape();
- }
- }
-
-@@ -210,7 +197,7 @@ uno::Reference< css::container::XIndexAccess > SAL_CALL SdUnoSearchReplaceShape:
- uno::Reference< drawing::XShapes > xShapes;
- uno::Reference< drawing::XShape > xShape;
-
-- SearchContext_impl* pContext = nullptr;
-+ std::vector aContexts;
- if(mpPage)
- {
- uno::Reference< drawing::XDrawPage > xPage( mpPage );
-@@ -218,8 +205,8 @@ uno::Reference< css::container::XIndexAccess > SAL_CALL SdUnoSearchReplaceShape:
-
- if( xShapes.is() && xShapes->getCount() > 0 )
- {
-- pContext = new SearchContext_impl( xShapes );
-- xShape = pContext->firstShape();
-+ aContexts.push_back(SearchContext_impl(xShapes));
-+ xShape = aContexts.back().firstShape();
- }
- else
- {
-@@ -259,34 +246,24 @@ uno::Reference< css::container::XIndexAccess > SAL_CALL SdUnoSearchReplaceShape:
-
- if( xGroupShape.is() && xGroupShape->getCount() > 0 )
- {
-- pContext = new SearchContext_impl( xGroupShape, pContext );
-- xShape = pContext->firstShape();
-+ aContexts.push_back(SearchContext_impl(xGroupShape));
-+ xShape = aContexts.back().firstShape();
- }
- else
- {
-- if( pContext )
-- xShape = pContext->nextShape();
-+ if (!aContexts.empty())
-+ xShape = aContexts.back().nextShape();
- else
- xShape = nullptr;
- }
-
- // test parent contexts for next shape if none
- // is found in the current context
-- while( pContext && !xShape.is() )
-+ while (!aContexts.empty() && !xShape.is())
- {
-- if( pContext->getParent() )
-- {
-- SearchContext_impl* pOldContext = pContext;
-- pContext = pContext->getParent();
-- delete pOldContext;
-- xShape = pContext->nextShape();
-- }
-- else
-- {
-- delete pContext;
-- pContext = nullptr;
-- xShape = nullptr;
-- }
-+ aContexts.pop_back();
-+ if (!aContexts.empty())
-+ xShape = aContexts.back().nextShape();
- }
- }
-
-diff --git a/sfx2/source/control/itemdel.cxx b/sfx2/source/control/itemdel.cxx
-index 9ee76fd6a2bb..806b0895f2a5 100644
---- a/sfx2/source/control/itemdel.cxx
-+++ b/sfx2/source/control/itemdel.cxx
-@@ -77,7 +77,7 @@ void DeleteItemOnIdle(SfxPoolItem* pItem)
- DBG_ASSERT( 0 == pItem->GetRefCount(), "deleting item in use" );
- SfxItemDisruptor_Impl *pDesruptor = new SfxItemDisruptor_Impl(pItem);
- pDesruptor->LaunchDeleteOnIdle();
-- // coverity[leaked_storage] pDesruptor takes care of its own destruction at idle time
-+ // coverity[leaked_storage] - pDesruptor takes care of its own destruction at idle time
- }
-
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/solenv/bin/pack_images.py b/solenv/bin/pack_images.py
-index 0f493c8f3035..384b61db8bc6 100755
---- a/solenv/bin/pack_images.py
-+++ b/solenv/bin/pack_images.py
-@@ -512,7 +512,7 @@ def parse_image_list(imagelist_filenames):
-
- if line.startswith('%MODULE%'):
- key = line.replace('%MODULE%/', '')
-- if key in global_image_list:
-+ if key in module_image_list:
- module_image_list[key] += 1
- else:
- module_image_list[key] = 0
-diff --git a/soltools/cpp/_unix.c b/soltools/cpp/_unix.c
-index 7d15d57ed45a..2ee9215524a2 100644
---- a/soltools/cpp/_unix.c
-+++ b/soltools/cpp/_unix.c
-@@ -204,6 +204,7 @@ void
- error(FATAL, "Can't open output file %s", argv[optind + 1]);
-
- dup2(fdo, 1);
-+ // coverity[leaked_handle] - on purpose
- }
- includelist[NINCLUDE - 1].always = 0;
- includelist[NINCLUDE - 1].file = dp;
-diff --git a/soltools/mkdepend/parse.c b/soltools/mkdepend/parse.c
-index b538c87be22b..7f87ca7e3529 100644
---- a/soltools/mkdepend/parse.c
-+++ b/soltools/mkdepend/parse.c
-@@ -158,6 +158,7 @@ int find_includes(struct filepointer *filep, struct inclist *file, struct inclis
- break;
- }
- }
-+ // coverity[leaked_storage] - on purpose
- return -1;
- }
-
-diff --git a/svtools/source/svhtml/htmlout.cxx b/svtools/source/svhtml/htmlout.cxx
-index a4d030631398..4d3ff3006a73 100644
---- a/svtools/source/svhtml/htmlout.cxx
-+++ b/svtools/source/svhtml/htmlout.cxx
-@@ -465,7 +465,7 @@ static OString lcl_ConvertCharToHTML( sal_uInt32 c,
- // If the character could not be converted to the destination
- // character set, the UNICODE character is exported as character
- // entity.
-- // coverity[callee_ptr_arith]
-+ // coverity[callee_ptr_arith] - its ok
- nLen = lcl_FlushContext(rContext, cBuffer, nFlags);
- sal_Char *pBuffer = cBuffer;
- while( nLen-- )
-diff --git a/svx/source/gengal/gengal.sh b/svx/source/gengal/gengal.sh
-index b4d10458650a..5f644c6702bb 100755
---- a/svx/source/gengal/gengal.sh
-+++ b/svx/source/gengal/gengal.sh
-@@ -55,8 +55,6 @@ for arg in "$@"
- do
- case "$arg" in
- -env:*) BOOTSTRAPVARS=$BOOTSTRAPVARS" ""$arg";;
-- -v) VERBOSE=true;;
-- --verbose) VERBOSE=true;;
- esac
- done
-
-diff --git a/sw/source/core/text/itrform2.cxx b/sw/source/core/text/itrform2.cxx
-index e762ab1f5842..68850b179d3f 100644
---- a/sw/source/core/text/itrform2.cxx
-+++ b/sw/source/core/text/itrform2.cxx
-@@ -722,6 +722,8 @@ void SwTextFormatter::BuildPortions( SwTextFormatInfo &rInf )
-
- // Reinit the tab overflow flag after the line
- rInf.SetTabOverflow( false );
-+
-+ // coverity[leaked_storage] - ownership is too complicated to hazard a fix, it definitely normally doesn't leak
- }
-
- void SwTextFormatter::CalcAdjustLine( SwLineLayout *pCurrent )
-diff --git a/sw/source/ui/index/cnttab.cxx b/sw/source/ui/index/cnttab.cxx
-index bd3693404b76..934676e47033 100644
---- a/sw/source/ui/index/cnttab.cxx
-+++ b/sw/source/ui/index/cnttab.cxx
-@@ -4047,8 +4047,9 @@ bool SwEntryBrowseBox::SaveModified()
- pController = m_xCheckController.get();
- bVal = static_cast< ::svt::CheckBoxCellController*>(pController)->GetCheckBox().IsChecked();
- }
-- AutoMarkEntry* pEntry = (nRow >= m_Entries.size()) ? new AutoMarkEntry
-- : m_Entries[nRow].get();
-+ const bool bAddEntry = nRow >= m_Entries.size();
-+ std::unique_ptr xNewEntry(bAddEntry ? new AutoMarkEntry : nullptr);
-+ AutoMarkEntry* pEntry = bAddEntry ? xNewEntry.get() : m_Entries[nRow].get();
- switch(nCol)
- {
- case ITEM_SEARCH : pEntry->sSearch = sNew; break;
-@@ -4059,9 +4060,9 @@ bool SwEntryBrowseBox::SaveModified()
- case ITEM_CASE : pEntry->bCase = bVal; break;
- case ITEM_WORDONLY : pEntry->bWord = bVal; break;
- }
-- if (nRow >= m_Entries.size())
-+ if (bAddEntry)
- {
-- m_Entries.push_back(std::unique_ptr(pEntry));
-+ m_Entries.push_back(std::move(xNewEntry));
- RowInserted(nRow, 1, true, true);
- if(nCol < ITEM_WORDONLY)
- {
-diff --git a/unoidl/source/legacyprovider.cxx b/unoidl/source/legacyprovider.cxx
-index a7eb47fc7a88..eb9462c733f2 100644
---- a/unoidl/source/legacyprovider.cxx
-+++ b/unoidl/source/legacyprovider.cxx
-@@ -259,9 +259,9 @@ rtl::Reference< Entity > readEntity(
- {
- sal_uInt16 m
- = reader.getMethodExceptionCount(k);
-- // coverity[tainted_data] cid#1213376
-- // unhelpfully warns about an untrusted loop
-- // bound here:
-+ // cid#1213376 unhelpfully warns about an
-+ // untrusted loop bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 l = 0; l != m; ++l) {
- getExcs.push_back(
- reader.getMethodExceptionTypeName(k, l).
-@@ -273,9 +273,9 @@ rtl::Reference< Entity > readEntity(
- {
- sal_uInt16 m
- = reader.getMethodExceptionCount(k);
-- // coverity[tainted_data] cid#1213376
-- // unhelpfully warns about an untrusted loop
-- // bound here:
-+ // cid#1213376 unhelpfully warns about an
-+ // untrusted loop bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 l = 0; l != m; ++l) {
- setExcs.push_back(
- reader.getMethodExceptionTypeName(k, l).
-@@ -309,8 +309,9 @@ rtl::Reference< Entity > readEntity(
- std::vector< InterfaceTypeEntity::Method::Parameter >
- params;
- sal_uInt16 m = reader.getMethodParameterCount(j);
-- // coverity[tainted_data] cid#1213376 unhelpfully warns
-- // about an untrusted loop bound here:
-+ // cid#1213376 unhelpfully warns about an untrusted loop
-+ // bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 k = 0; k != m; ++k) {
- RTParamMode mode = reader.getMethodParameterFlags(j, k);
- InterfaceTypeEntity::Method::Parameter::Direction dir;
-@@ -342,8 +343,9 @@ rtl::Reference< Entity > readEntity(
- }
- std::vector< OUString > excs;
- m = reader.getMethodExceptionCount(j);
-- // coverity[tainted_data] cid#1213376 unhelpfully warns
-- // about an untrusted loop bound here:
-+ // cid#1213376 unhelpfully warns about an untrusted loop
-+ // bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 k = 0; k != m; ++k) {
- excs.push_back(
- reader.getMethodExceptionTypeName(j, k).replace(
-@@ -607,8 +609,9 @@ rtl::Reference< Entity > readEntity(
- SingleInterfaceBasedServiceEntity::Constructor::
- Parameter > params;
- sal_uInt16 m = reader.getMethodParameterCount(j);
-- // coverity[tainted_data] cid#1213376 unhelpfully warns
-- // about an untrusted loop bound here:
-+ // cid#1213376 unhelpfully warns about an untrusted
-+ // loop bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 k = 0; k != m; ++k) {
- RTParamMode mode
- = reader.getMethodParameterFlags(j, k);
-@@ -647,8 +650,9 @@ rtl::Reference< Entity > readEntity(
- }
- std::vector< OUString > excs;
- m = reader.getMethodExceptionCount(j);
-- // coverity[tainted_data] cid#1213376 unhelpfully warns
-- // about an untrusted loop bound here:
-+ // cid#1213376 unhelpfully warns about an untrusted
-+ // loop bound here:
-+ // coverity[tainted_data] - trusted data source
- for (sal_uInt16 k = 0; k != m; ++k) {
- excs.push_back(
- reader.getMethodExceptionTypeName(j, k).replace(
-diff --git a/unotest/source/cpp/officeconnection.cxx b/unotest/source/cpp/officeconnection.cxx
-index a82471e3b921..c85ad7b72e5f 100644
---- a/unotest/source/cpp/officeconnection.cxx
-+++ b/unotest/source/cpp/officeconnection.cxx
-@@ -78,7 +78,7 @@ void OfficeConnection::setUp() {
- {
- envs = &argEnv.pData;
- }
-- // coverity[callee_ptr_arith]
-+ // coverity[callee_ptr_arith] - arith is fine
- CPPUNIT_ASSERT_EQUAL(
- osl_Process_E_None,
- osl_executeProcess(
-diff --git a/vcl/source/bitmap/BitmapScaleConvolution.cxx b/vcl/source/bitmap/BitmapScaleConvolution.cxx
-index 49aed5d5940b..a8b9bc4b2494 100644
---- a/vcl/source/bitmap/BitmapScaleConvolution.cxx
-+++ b/vcl/source/bitmap/BitmapScaleConvolution.cxx
-@@ -36,9 +36,9 @@ void ImplCalculateContributions(
- const long aSourceSize,
- const long aDestinationSize,
- long& aNumberOfContributions,
-- double*& pWeights,
-- long*& pPixels,
-- long*& pCount,
-+ std::vector& rWeights,
-+ std::vector& rPixels,
-+ std::vector& rCounts,
- const Kernel& aKernel)
- {
- const double fSamplingRadius(aKernel.GetWidth());
-@@ -48,9 +48,9 @@ void ImplCalculateContributions(
-
- aNumberOfContributions = (long(fabs(ceil(fScaledRadius))) * 2) + 1;
- const long nAllocSize(aDestinationSize * aNumberOfContributions);
-- pWeights = new double[nAllocSize];
-- pPixels = new long[nAllocSize];
-- pCount = new long[aDestinationSize];
-+ rWeights.resize(nAllocSize);
-+ rPixels.resize(nAllocSize);
-+ rCounts.resize(aDestinationSize);
-
- for(long i(0); i < aDestinationSize; i++)
- {
-@@ -74,13 +74,13 @@ void ImplCalculateContributions(
- const long aPixelIndex(MinMax(j, 0, aSourceSize - 1));
- const long nIndex(aIndex + aCurrentCount);
-
-- pWeights[nIndex] = aWeight;
-- pPixels[nIndex] = aPixelIndex;
-+ rWeights[nIndex] = aWeight;
-+ rPixels[nIndex] = aPixelIndex;
-
- aCurrentCount++;
- }
-
-- pCount[i] = aCurrentCount;
-+ rCounts[i] = aCurrentCount;
- }
- }
-
-@@ -100,13 +100,13 @@ bool ImplScaleConvolutionHor(Bitmap& rSource, Bitmap& rTarget, const double& rSc
-
- if(pReadAcc)
- {
-- double* pWeights = nullptr;
-- long* pPixels = nullptr;
-- long* pCount = nullptr;
-+ std::vector aWeights;
-+ std::vector aPixels;
-+ std::vector aCounts;
- long aNumberOfContributions(0);
-
- const long nHeight(rSource.GetSizePixel().Height());
-- ImplCalculateContributions(nWidth, nNewWidth, aNumberOfContributions, pWeights, pPixels, pCount, aKernel);
-+ ImplCalculateContributions(nWidth, nNewWidth, aNumberOfContributions, aWeights, aPixels, aCounts, aKernel);
- rTarget = Bitmap(Size(nNewWidth, nHeight), 24);
- Bitmap::ScopedWriteAccess pWriteAcc(rTarget);
- bool bResult(nullptr != pWriteAcc);
-@@ -123,21 +123,21 @@ bool ImplScaleConvolutionHor(Bitmap& rSource, Bitmap& rTarget, const double& rSc
- double aValueGreen(0.0);
- double aValueBlue(0.0);
-
-- for(long j(0); j < pCount[x]; j++)
-+ for(long j(0); j < aCounts[x]; j++)
- {
- const long aIndex(aBaseIndex + j);
-- const double aWeight(pWeights[aIndex]);
-+ const double aWeight(aWeights[aIndex]);
- BitmapColor aColor;
-
- aSum += aWeight;
-
- if(pReadAcc->HasPalette())
- {
-- aColor = pReadAcc->GetPaletteColor(pReadAcc->GetPixelIndex(y, pPixels[aIndex]));
-+ aColor = pReadAcc->GetPaletteColor(pReadAcc->GetPixelIndex(y, aPixels[aIndex]));
- }
- else
- {
-- aColor = pReadAcc->GetPixel(y, pPixels[aIndex]);
-+ aColor = pReadAcc->GetPixel(y, aPixels[aIndex]);
- }
-
- aValueRed += aWeight * aColor.GetRed();
-@@ -157,9 +157,9 @@ bool ImplScaleConvolutionHor(Bitmap& rSource, Bitmap& rTarget, const double& rSc
- pWriteAcc.reset();
- }
-
-- delete[] pWeights;
-- delete[] pCount;
-- delete[] pPixels;
-+ aWeights.clear();
-+ aCounts.clear();
-+ aPixels.clear();
-
- if(bResult)
- {
-@@ -186,13 +186,13 @@ bool ImplScaleConvolutionVer(Bitmap& rSource, Bitmap& rTarget, const double& rSc
-
- if(pReadAcc)
- {
-- double* pWeights = nullptr;
-- long* pPixels = nullptr;
-- long* pCount = nullptr;
-+ std::vector aWeights;
-+ std::vector aPixels;
-+ std::vector aCounts;
- long aNumberOfContributions(0);
-
- const long nWidth(rSource.GetSizePixel().Width());
-- ImplCalculateContributions(nHeight, nNewHeight, aNumberOfContributions, pWeights, pPixels, pCount, aKernel);
-+ ImplCalculateContributions(nHeight, nNewHeight, aNumberOfContributions, aWeights, aPixels, aCounts, aKernel);
- rTarget = Bitmap(Size(nWidth, nNewHeight), 24);
- Bitmap::ScopedWriteAccess pWriteAcc(rTarget);
- bool bResult(nullptr != pWriteAcc);
-@@ -209,21 +209,21 @@ bool ImplScaleConvolutionVer(Bitmap& rSource, Bitmap& rTarget, const double& rSc
- double aValueGreen(0.0);
- double aValueBlue(0.0);
-
-- for(long j(0); j < pCount[y]; j++)
-+ for(long j(0); j < aCounts[y]; j++)
- {
- const long aIndex(aBaseIndex + j);
-- const double aWeight(pWeights[aIndex]);
-+ const double aWeight(aWeights[aIndex]);
- BitmapColor aColor;
-
- aSum += aWeight;
-
- if(pReadAcc->HasPalette())
- {
-- aColor = pReadAcc->GetPaletteColor(pReadAcc->GetPixelIndex(pPixels[aIndex], x));
-+ aColor = pReadAcc->GetPaletteColor(pReadAcc->GetPixelIndex(aPixels[aIndex], x));
- }
- else
- {
-- aColor = pReadAcc->GetPixel(pPixels[aIndex], x);
-+ aColor = pReadAcc->GetPixel(aPixels[aIndex], x);
- }
-
- aValueRed += aWeight * aColor.GetRed();
-@@ -248,9 +248,9 @@ bool ImplScaleConvolutionVer(Bitmap& rSource, Bitmap& rTarget, const double& rSc
- }
- }
-
-- delete[] pWeights;
-- delete[] pCount;
-- delete[] pPixels;
-+ aWeights.clear();
-+ aCounts.clear();
-+ aPixels.clear();
-
- if(bResult)
- {
-diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx
-index b509f6059737..70225ce146c9 100644
---- a/vcl/source/gdi/bitmap3.cxx
-+++ b/vcl/source/gdi/bitmap3.cxx
-@@ -2127,7 +2127,9 @@ bool Bitmap::Adjust( short nLuminancePercent, short nContrastPercent,
- return bRet;
- }
-
--bool Bitmap::ImplConvolutionPass(Bitmap& aNewBitmap, BitmapReadAccess const * pReadAcc, int aNumberOfContributions, const double* pWeights, int const * pPixels, const int* pCount)
-+bool Bitmap::ImplConvolutionPass(Bitmap& aNewBitmap, BitmapReadAccess const * pReadAcc, int aNumberOfContributions,
-+ const std::vector& rWeights, const std::vector& rPixels,
-+ const std::vector& rCounts)
- {
- if (!pReadAcc)
- return false;
-@@ -2153,12 +2155,12 @@ bool Bitmap::ImplConvolutionPass(Bitmap& aNewBitmap, BitmapReadAccess const * pR
- aBaseIndex = nSourceX * aNumberOfContributions;
- aSum = aValueRed = aValueGreen = aValueBlue = 0.0;
-
-- for (int j = 0; j < pCount[nSourceX]; ++j)
-+ for (int j = 0; j < rCounts[nSourceX]; ++j)
- {
- aIndex = aBaseIndex + j;
-- aSum += aWeight = pWeights[ aIndex ];
-+ aSum += aWeight = rWeights[ aIndex ];
-
-- aColor = pReadAcc->GetColor(nSourceY, pPixels[aIndex]);
-+ aColor = pReadAcc->GetColor(nSourceY, rPixels[aIndex]);
-
- aValueRed += aWeight * aColor.GetRed();
- aValueGreen += aWeight * aColor.GetGreen();
-diff --git a/vcl/source/gdi/bitmap4.cxx b/vcl/source/gdi/bitmap4.cxx
-index d5e995770993..28bd9fab7f3f 100644
---- a/vcl/source/gdi/bitmap4.cxx
-+++ b/vcl/source/gdi/bitmap4.cxx
-@@ -1042,10 +1042,10 @@ bool Bitmap::ImplPopArt()
- return bRet;
- }
-
--double* MakeBlurKernel(const double radius, int& rows) {
-+std::vector MakeBlurKernel(const double radius, int& rows) {
- int intRadius = (int) radius + 1.0;
- rows = intRadius * 2 + 1;
-- double* matrix = new double[rows];
-+ std::vector matrix(rows);
-
- double sigma = radius / 3;
- double radius2 = radius * radius;
-@@ -1064,11 +1064,12 @@ double* MakeBlurKernel(const double radius, int& rows) {
- }
-
- void Bitmap::ImplBlurContributions( const int aSize, const int aNumberOfContributions,
-- const double* pBlurVector, double*& pWeights, int*& pPixels, int*& pCount )
-+ const std::vector& rBlurVector,
-+ std::vector& rWeights, std::vector& rPixels, std::vector& rCounts)
- {
-- pWeights = new double[ aSize*aNumberOfContributions ];
-- pPixels = new int[ aSize*aNumberOfContributions ];
-- pCount = new int[ aSize ];
-+ rWeights.resize(aSize*aNumberOfContributions);
-+ rPixels.resize(aSize*aNumberOfContributions);
-+ rCounts.resize(aSize);
-
- int aLeft, aRight, aCurrentCount, aPixelIndex;
- double aWeight;
-@@ -1080,7 +1081,7 @@ void Bitmap::ImplBlurContributions( const int aSize, const int aNumberOfContribu
- aCurrentCount = 0;
- for ( int j = aLeft; j <= aRight; j++ )
- {
-- aWeight = pBlurVector[aCurrentCount];
-+ aWeight = rBlurVector[aCurrentCount];
-
- // Mirror edges
- if (j < 0)
-@@ -1102,12 +1103,12 @@ void Bitmap::ImplBlurContributions( const int aSize, const int aNumberOfContribu
- aWeight = 0.0;
- }
-
-- pWeights[ i*aNumberOfContributions + aCurrentCount ] = aWeight;
-- pPixels[ i*aNumberOfContributions + aCurrentCount ] = aPixelIndex;
-+ rWeights[ i*aNumberOfContributions + aCurrentCount ] = aWeight;
-+ rPixels[ i*aNumberOfContributions + aCurrentCount ] = aPixelIndex;
-
- aCurrentCount++;
- }
-- pCount[ i ] = aCurrentCount;
-+ rCounts[ i ] = aCurrentCount;
- }
- }
-
-@@ -1126,31 +1127,31 @@ bool Bitmap::ImplSeparableBlurFilter(const double radius)
-
- // Prepare Blur Vector
- int aNumberOfContributions;
-- double* pBlurVector = MakeBlurKernel(radius, aNumberOfContributions);
-+ std::vector aBlurVector(MakeBlurKernel(radius, aNumberOfContributions));
-
-- double* pWeights;
-- int* pPixels;
-- int* pCount;
-+ std::vector aWeights;
-+ std::vector aPixels;
-+ std::vector aCounts;
-
- // Do horizontal filtering
-- ImplBlurContributions( nWidth, aNumberOfContributions, pBlurVector, pWeights, pPixels, pCount);
-+ ImplBlurContributions( nWidth, aNumberOfContributions, aBlurVector, aWeights, aPixels, aCounts);
-
- ScopedReadAccess pReadAcc(*this);
-
- // switch coordinates as convolution pass transposes result
- Bitmap aNewBitmap( Size( nHeight, nWidth ), 24 );
-
-- bool bResult = ImplConvolutionPass( aNewBitmap, pReadAcc.get(), aNumberOfContributions, pWeights, pPixels, pCount );
-+ bool bResult = ImplConvolutionPass( aNewBitmap, pReadAcc.get(), aNumberOfContributions, aWeights, aPixels, aCounts );
-
- // Cleanup
- pReadAcc.reset();
-- delete[] pWeights;
-- delete[] pPixels;
-- delete[] pCount;
-+ aWeights.clear();
-+ aPixels.clear();
-+ aCounts.clear();
-
- if ( !bResult )
- {
-- delete[] pBlurVector;
-+ aBlurVector.clear();
- return bResult;
- }
-
-@@ -1158,18 +1159,18 @@ bool Bitmap::ImplSeparableBlurFilter(const double radius)
- ImplAssignWithSize( aNewBitmap );
-
- // Do vertical filtering
-- ImplBlurContributions(nHeight, aNumberOfContributions, pBlurVector, pWeights, pPixels, pCount );
-+ ImplBlurContributions(nHeight, aNumberOfContributions, aBlurVector, aWeights, aPixels, aCounts );
-
- pReadAcc = ScopedReadAccess(*this);
- aNewBitmap = Bitmap( Size( nWidth, nHeight ), 24 );
-- bResult = ImplConvolutionPass( aNewBitmap, pReadAcc.get(), aNumberOfContributions, pWeights, pPixels, pCount );
-+ bResult = ImplConvolutionPass( aNewBitmap, pReadAcc.get(), aNumberOfContributions, aWeights, aPixels, aCounts );
-
- // Cleanup
- pReadAcc.reset();
-- delete[] pWeights;
-- delete[] pCount;
-- delete[] pPixels;
-- delete[] pBlurVector;
-+ aWeights.clear();
-+ aCounts.clear();
-+ aPixels.clear();
-+ aBlurVector.clear();
-
- if ( !bResult )
- return bResult;
-diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
-index 58711a9d862b..f6eea9242327 100644
---- a/vcl/source/gdi/pdfwriter_impl.cxx
-+++ b/vcl/source/gdi/pdfwriter_impl.cxx
-@@ -6337,6 +6337,7 @@ void PDFWriterImpl::drawRelief( SalLayout& rLayout, const OUString& rText, bool
- aTextLineColor = Color( COL_WHITE );
- if( aOverlineColor == COL_BLACK )
- aOverlineColor = Color( COL_WHITE );
-+ // coverity[copy_paste_error] - aReliefColor depending on aTextColor is correct
- if( aTextColor == COL_WHITE )
- aReliefColor = Color( COL_BLACK );
-
-diff --git a/vcl/unx/generic/plugadapt/salplug.cxx b/vcl/unx/generic/plugadapt/salplug.cxx
-index a1195dbde18a..b89e7ea4832c 100644
---- a/vcl/unx/generic/plugadapt/salplug.cxx
-+++ b/vcl/unx/generic/plugadapt/salplug.cxx
-@@ -127,6 +127,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase, bool bForce = fals
- SAL_INFO("vcl.plugadapt", "could not load shared object " << aModule);
- }
-
-+ // coverity[leaked_storage] - this is on purpose
- return pInst;
- }
-
-diff --git a/wizards/com/sun/star/wizards/agenda/TopicsControl.py b/wizards/com/sun/star/wizards/agenda/TopicsControl.py
-index cc42aa95552a..6ba529c1428f 100644
---- a/wizards/com/sun/star/wizards/agenda/TopicsControl.py
-+++ b/wizards/com/sun/star/wizards/agenda/TopicsControl.py
-@@ -458,8 +458,9 @@ class TopicsControl(ControlScroller):
-
- def rowDown(self, guiRow=None, control=None):
- try:
-- if guiRow is None and control is None:
-+ if guiRow is None:
- guiRow = self.lastFocusRow - self.nscrollvalue
-+ if control is None:
- control = self.lastFocusControl
- # only perform if this is not the last row.
- actuallRow = guiRow + self.nscrollvalue
-@@ -490,8 +491,9 @@ class TopicsControl(ControlScroller):
-
- def rowUp(self, guiRow=None, control=None):
- try:
-- if guiRow is None and control is None:
-+ if guiRow is None:
- guiRow = self.lastFocusRow - self.nscrollvalue
-+ if control is None:
- control = self.lastFocusControl
- # only perform if this is not the first row
- actuallRow = guiRow + self.nscrollvalue
-diff --git a/wizards/com/sun/star/wizards/document/OfficeDocument.py b/wizards/com/sun/star/wizards/document/OfficeDocument.py
-index 3886f1eb1c70..acef6139f737 100644
---- a/wizards/com/sun/star/wizards/document/OfficeDocument.py
-+++ b/wizards/com/sun/star/wizards/document/OfficeDocument.py
-@@ -234,7 +234,6 @@ class OfficeDocument(object):
- bState = False
-
- else:
-- xComponent.dispose()
- bState = True
-
- return bState
---
-2.17.1
-
diff --git a/0001-forcepoint-fix-out-of-bounds-read-in-ICU.patch b/0001-forcepoint-fix-out-of-bounds-read-in-ICU.patch
deleted file mode 100644
index c7aaec8..0000000
--- a/0001-forcepoint-fix-out-of-bounds-read-in-ICU.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 2b69156c43261ceae55eb4d3b644c4c2d73231ba Mon Sep 17 00:00:00 2001
-Message-Id: <2b69156c43261ceae55eb4d3b644c4c2d73231ba.1531843216.git.erack@redhat.com>
-From: David Tardon
-Date: Tue, 6 Mar 2018 15:17:13 +0100
-Subject: [PATCH] forcepoint: fix out-of-bounds read in ICU
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"
-
-This is a multi-part message in MIME format.
---------------erAck-patch-parts
-Content-Type: text/plain; charset=UTF-8; format=fixed
-Content-Transfer-Encoding: 8bit
-
-
-Change-Id: I5061d38d0e7df0de9a5c7574d522ce69934e4a24
----
- external/icu/UnpackedTarball_icu.mk | 1 +
- external/icu/ofz4860.patch.2 | 25 +++++++++++++++++++++++++
- 2 files changed, 26 insertions(+)
- create mode 100644 external/icu/ofz4860.patch.2
-
-
---------------erAck-patch-parts
-Content-Type: text/x-patch; name="0001-forcepoint-fix-out-of-bounds-read-in-ICU.patch"
-Content-Transfer-Encoding: 8bit
-Content-Disposition: attachment; filename="0001-forcepoint-fix-out-of-bounds-read-in-ICU.patch"
-
-diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
-index 499650976a55..a4d0b16ecb36 100644
---- a/external/icu/UnpackedTarball_icu.mk
-+++ b/external/icu/UnpackedTarball_icu.mk
-@@ -35,6 +35,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
- $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.patch.1) \
- external/icu/icu4c-khmerbreakengine.patch.1 \
- external/icu/icu4c-59-werror-shadow.patch.1 \
-+ external/icu/ofz4860.patch.2 \
- ))
-
- $(eval $(call gb_UnpackedTarball_add_file,icu,source/data/brkitr/khmerdict.dict,external/icu/khmerdict.dict))
-diff --git a/external/icu/ofz4860.patch.2 b/external/icu/ofz4860.patch.2
-new file mode 100644
-index 000000000000..14114d52878b
---- /dev/null
-+++ b/external/icu/ofz4860.patch.2
-@@ -0,0 +1,25 @@
-+From 529ba01ee606940ca273b187be8ce9ba31cf2d90 Mon Sep 17 00:00:00 2001
-+From: David Tardon
-+Date: Fri, 19 Jan 2018 10:41:02 +0100
-+Subject: [PATCH] ofz#4860 fix past-the-end read from array
-+
-+---
-+ icu4c/source/common/locmap.cpp | 2 +-
-+ 1 file changed, 1 insertion(+), 1 deletion(-)
-+
-+diff --git a/icu4c/source/common/locmap.cpp b/icu4c/source/common/locmap.cpp
-+index cbb2b810a..6d62d8310 100644
-+--- a/icu4c/source/common/locmap.cpp
-++++ b/icu4c/source/common/locmap.cpp
-+@@ -1015,7 +1015,7 @@ static const char*
-+ getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
-+ {
-+ uint32_t i;
-+- for (i = 0; i <= this_0->numRegions; i++)
-++ for (i = 0; i < this_0->numRegions; i++)
-+ {
-+ if (this_0->regionMaps[i].hostID == hostID)
-+ {
-+--
-+2.14.3
-+
-
---------------erAck-patch-parts--
-
-
diff --git a/0001-gtk3-only-for-3.20.patch b/0001-gtk3-only-for-3.20.patch
index f7ef00c..7380aff 100644
--- a/0001-gtk3-only-for-3.20.patch
+++ b/0001-gtk3-only-for-3.20.patch
@@ -16,7 +16,7 @@ index e01a267b..7237b6c 100644
XInitThreads();
#if GTK_CHECK_VERSION(3,0,0)
-- if (gtk_minor_version < 14)
+- if (gtk_minor_version < 18)
+ if (gtk_minor_version < 20)
{
g_warning("require a newer gtk than 3.%d for theme expectations", gtk_minor_version);
diff --git a/0001-implement-pdf-export-of-underline-for-outlined-font.patch b/0001-implement-pdf-export-of-underline-for-outlined-font.patch
deleted file mode 100644
index c91806c..0000000
--- a/0001-implement-pdf-export-of-underline-for-outlined-font.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d01b115cb9db9200900f78d614d220b6bec1eb7d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?=
-Date: Fri, 20 Jul 2018 14:49:17 +0100
-Subject: [PATCH] implement pdf export of underline for outlined font
-
-just the simplest case of a straight solid line which is outlined,
-i.e. border in font color and filled with white
-
-Change-Id: I7d670a543475b6457cb2827e74a05bba6c4a91ea
----
- vcl/source/gdi/pdfwriter_impl.cxx | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
-diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
-index 58711a9d862b..bf932ad17ef8 100644
---- a/vcl/source/gdi/pdfwriter_impl.cxx
-+++ b/vcl/source/gdi/pdfwriter_impl.cxx
-@@ -7384,6 +7384,27 @@ void PDFWriterImpl::drawStraightTextLine( OStringBuffer& aLine, long nWidth, Fon
- if ( !nLineHeight )
- return;
-
-+ // outline attribute ?
-+ if (m_aCurrentPDFState.m_aFont.IsOutline() && eTextLine == LINESTYLE_SINGLE)
-+ {
-+ appendStrokingColor(aColor, aLine); // stroke with text color
-+ aLine.append( " " );
-+ Color aNonStrokeColor(COL_WHITE); // fill with white
-+ appendNonStrokingColor(aNonStrokeColor, aLine);
-+ aLine.append( "\n" );
-+ aLine.append( "0.25 w \n" ); // same line thickness as in drawLayout
-+
-+ // draw rectangle instead
-+ aLine.append( "0 " );
-+ m_aPages.back().appendMappedLength( static_cast(-nLinePos * 1.5), aLine );
-+ aLine.append( " " );
-+ m_aPages.back().appendMappedLength( static_cast(nWidth), aLine, false );
-+ aLine.append( ' ' );
-+ m_aPages.back().appendMappedLength( static_cast(nLineHeight), aLine );
-+ aLine.append( " re h B\n" );
-+ return;
-+ }
-+
- m_aPages.back().appendMappedLength( (sal_Int32)nLineHeight, aLine );
- aLine.append( " w " );
- appendStrokingColor( aColor, aLine );
---
-2.17.0
-
diff --git a/0001-request-installation-of-langpack-via-packagekit.patch b/0001-request-installation-of-langpack-via-packagekit.patch
deleted file mode 100644
index f74c057..0000000
--- a/0001-request-installation-of-langpack-via-packagekit.patch
+++ /dev/null
@@ -1,946 +0,0 @@
-From 44686bc81055c7bee7f41f9e219c35115ce8119f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?=
-Date: Wed, 20 Dec 2017 15:29:39 +0000
-Subject: [PATCH] request installation of langpack via packagekit
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-if ui is set to track the locale automatically and the current locale
-has no match in installed resources but has a match in the list of
-languages that libreoffice was compiled to contain
-
-so e.g. de_AT locale shouldn't trigger the installation of anything if
-langpack-de is already installed and yue_HK shouldn't trigger install
-of anything cause that not supported (at time of writing) for libreoffice
-
-put Fedora/RHEL/Ubuntu naming schemes in here.
-
-I moved the lang code from svl to svtools so I could use the restart dialog
-to prompt to restart after the langpack is installed, but packagekit's blocking
-mode seems to be no longer blocking and control returns immediately which is a
-change since the last time I played with this stuff, so drop the restart thing
-for now. The lack of a blocking modal also makes the "run this on idle when there's
-a toplevel window up and running" a bit futile, but lets keep that for now anyway.
-
-also...
-
-set dbus id for existing DbusSessionHelper users
-
-Change-Id: I64329e21ae79b6607856de9781bee0274b9cb136
-Reviewed-on: https://gerrit.libreoffice.org/46854
-Tested-by: Jenkins
-Reviewed-by: Caolán McNamara
-Tested-by: Caolán McNamara
-(cherry picked from commit 7cf4eeed81fd333c87dedffa792f5d547b7981f0)
-
-Change-Id: Ice731be539850338ccdd8af87839e0b4d83f01e7
----
- config_host/config_langs.h.in | 10 ++
- config_host/config_vendor.h.in | 10 ++
- configure.ac | 4 +
- cui/source/options/optgdlg.cxx | 3 +-
- desktop/source/app/langselect.cxx | 3 +-
- include/svl/languageoptions.hxx | 3 -
- include/svtools/langhelp.hxx | 3 +
- offapi/org/freedesktop/PackageKit/XModify.idl | 22 ++--
- .../registry/data/org/openoffice/Office/Common.xcu | 3 +
- .../schema/org/openoffice/Office/Common.xcs | 6 +
- sfx2/source/appl/appserv.cxx | 3 +-
- .../sessioninstall/SyncDbusSessionHelper.cxx | 57 +++++----
- .../sessioninstall/SyncDbusSessionHelper.hxx | 20 ++--
- svl/source/config/languageoptions.cxx | 33 ------
- svtools/source/misc/langhelp.cxx | 130 ++++++++++++++++++++-
- sw/source/uibase/app/apphdl.cxx | 3 +-
- vcl/inc/unx/fontmanager.hxx | 6 +-
- vcl/unx/generic/fontmanager/fontconfig.cxx | 93 ++-------------
- vcl/unx/generic/fontmanager/fontmanager.cxx | 2 -
- 19 files changed, 235 insertions(+), 179 deletions(-)
- create mode 100644 config_host/config_langs.h.in
- create mode 100644 config_host/config_vendor.h.in
-
-diff --git a/config_host/config_langs.h.in b/config_host/config_langs.h.in
-new file mode 100644
-index 0000000..d60a5c1
---- /dev/null
-+++ b/config_host/config_langs.h.in
-@@ -0,0 +1,10 @@
-+/* Configuration of restriction on supported ui languages, by the
-+ * --with-lang option.
-+ */
-+
-+#ifndef CONFIG_LANGS_H
-+#define CONFIG_LANGS_H
-+
-+#define WITH_LANG ""
-+
-+#endif
-diff --git a/config_host/config_vendor.h.in b/config_host/config_vendor.h.in
-new file mode 100644
-index 0000000..3260221
---- /dev/null
-+++ b/config_host/config_vendor.h.in
-@@ -0,0 +1,10 @@
-+/* Configuration of restriction on supported ui languages, by the
-+ * --with-lang option.
-+ */
-+
-+#ifndef CONFIG_VENDOR_H
-+#define CONFIG_VENDOR_H
-+
-+#define OOO_VENDOR ""
-+
-+#endif
-diff --git a/configure.ac b/configure.ac
-index bbb47e6..55e2aa0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -11777,6 +11777,7 @@ if test "$enable_release_build" = "" -o "$enable_release_build" = "no"; then
- ALL_LANGS=`echo $ALL_LANGS qtz`
- fi
- AC_SUBST(ALL_LANGS)
-+AC_DEFINE_UNQUOTED(WITH_LANG,"$WITH_LANG")
- AC_SUBST(WITH_LANG)
- AC_SUBST(WITH_LANG_LIST)
- AC_SUBST(GIT_NEEDED_SUBMODULES)
-@@ -11925,6 +11926,7 @@ else
- OOO_VENDOR="$with_vendor"
- AC_MSG_RESULT([$OOO_VENDOR])
- fi
-+AC_DEFINE_UNQUOTED(OOO_VENDOR,"$OOO_VENDOR")
- AC_SUBST(OOO_VENDOR)
-
- if test "$_os" = "Android" ; then
-@@ -12538,6 +12540,7 @@ AC_CONFIG_HEADERS([config_host/config_gio.h])
- AC_CONFIG_HEADERS([config_host/config_global.h])
- AC_CONFIG_HEADERS([config_host/config_gpgme.h])
- AC_CONFIG_HEADERS([config_host/config_java.h])
-+AC_CONFIG_HEADERS([config_host/config_langs.h])
- AC_CONFIG_HEADERS([config_host/config_lgpl.h])
- AC_CONFIG_HEADERS([config_host/config_liblangtag.h])
- AC_CONFIG_HEADERS([config_host/config_locales.h])
-@@ -12549,6 +12552,7 @@ AC_CONFIG_HEADERS([config_host/config_options.h])
- AC_CONFIG_HEADERS([config_host/config_options_calc.h])
- AC_CONFIG_HEADERS([config_host/config_test.h])
- AC_CONFIG_HEADERS([config_host/config_typesizes.h])
-+AC_CONFIG_HEADERS([config_host/config_vendor.h])
- AC_CONFIG_HEADERS([config_host/config_vcl.h])
- AC_CONFIG_HEADERS([config_host/config_vclplug.h])
- AC_CONFIG_HEADERS([config_host/config_version.h])
-diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
-index 1c90931..7965179 100644
---- a/cui/source/options/optgdlg.cxx
-+++ b/cui/source/options/optgdlg.cxx
-@@ -21,6 +21,7 @@
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
-@@ -1122,7 +1123,7 @@ namespace
- LanguageTag GetInstalledLocaleForSystemUILanguage()
- {
- css::uno::Sequence inst(officecfg::Setup::Office::InstalledLocales::get()->getElementNames());
-- return LanguageTag(getInstalledLocaleForSystemUILanguage(inst)).makeFallback();
-+ return LanguageTag(getInstalledLocaleForSystemUILanguage(inst, false)).makeFallback();
- }
- }
-
-diff --git a/desktop/source/app/langselect.cxx b/desktop/source/app/langselect.cxx
-index 4ce877a..86ce743 100644
---- a/desktop/source/app/langselect.cxx
-+++ b/desktop/source/app/langselect.cxx
-@@ -37,6 +37,7 @@
- #include
- #include
- #include
-+#include
-
- #include
-
-@@ -103,7 +104,7 @@ bool prepareLocale() {
- }
- }
- if (locale.isEmpty()) {
-- locale = getInstalledLocaleForSystemUILanguage(inst);
-+ locale = getInstalledLocaleForSystemUILanguage(inst, true);
- }
- if (locale.isEmpty()) {
- return false;
-diff --git a/include/svl/languageoptions.hxx b/include/svl/languageoptions.hxx
-index f386cb6..6de8eb5 100644
---- a/include/svl/languageoptions.hxx
-+++ b/include/svl/languageoptions.hxx
-@@ -131,9 +131,6 @@ public:
- bool isCJKKeyboardLayoutInstalled() const;
- };
-
--OUString SVL_DLLPUBLIC getInstalledLocaleForLanguage(css::uno::Sequence const & installed, OUString const & locale);
--OUString SVL_DLLPUBLIC getInstalledLocaleForSystemUILanguage(css::uno::Sequence const & installed);
--
- #endif // INCLUDED_SVL_LANGUAGEOPTIONS_HXX
-
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/include/svtools/langhelp.hxx b/include/svtools/langhelp.hxx
-index a3a84df..db22bb3 100644
---- a/include/svtools/langhelp.hxx
-+++ b/include/svtools/langhelp.hxx
-@@ -22,6 +22,9 @@
- */
- SVT_DLLPUBLIC void localizeWebserviceURI( OUString& io_rURI );
-
-+OUString SVT_DLLPUBLIC getInstalledLocaleForLanguage(css::uno::Sequence const & installed, OUString const & locale);
-+OUString SVT_DLLPUBLIC getInstalledLocaleForSystemUILanguage(css::uno::Sequence const & installed, bool bRequestInstallIfMissing);
-+
- #endif
-
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/offapi/org/freedesktop/PackageKit/XModify.idl b/offapi/org/freedesktop/PackageKit/XModify.idl
-index a712bb5..69544e9 100644
---- a/offapi/org/freedesktop/PackageKit/XModify.idl
-+++ b/offapi/org/freedesktop/PackageKit/XModify.idl
-@@ -22,7 +22,7 @@ module PackageKit
- * The interface used for modifying the package database.
- *
- * @sa
-- * https://git.gnome.org/browse/gnome-software/tree/src/org.freedesktop.PackageKit.xml
-+ * https://git.gnome.org/browse/gnome-software/tree/src/org.freedesktop.PackageKit.Modify2.xml
- * for documentation of the corresponding D-Bus interface
- */
- interface XModify : com::sun::star::uno::XInterface
-@@ -32,70 +32,70 @@ interface XModify : com::sun::star::uno::XInterface
- * @since LibreOffice 4.0
- */
-
-- void InstallPackageFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
-+ void InstallPackageFiles([in] sequence< string > files, [in] string interaction);
-
- /**
- * Installs sequence< string > packages to provide sequence< string > files.
- * @since LibreOffice 4.0
- */
-
-- void InstallProvideFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
-+ void InstallProvideFiles([in] sequence< string > files, [in] string interaction);
-
- /**
- * Installs sequence< string > packages to provide sequence< string > files.
- * @since LibreOffice 4.0
- */
-
-- void InstallCatalogs( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
-+ void InstallCatalogs([in] sequence< string > files, [in] string interaction);
-
- /**
- * Installs sequence< string > packages from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallPackageNames( [in] unsigned long xid, [in] sequence< string > packages, [in] string interaction);
-+ void InstallPackageNames([in] sequence< string > packages, [in] string interaction);
-
- /**
- * Installs mimetype handlers from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallMimeTypes( [in] unsigned long xid, [in] sequence< string > mimeTypes, [in] string interaction);
-+ void InstallMimeTypes([in] sequence< string > mimeTypes, [in] string interaction);
-
- /**
- * Installs fontconfig resources ( [in] usually fonts) from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallFontconfigResources( [in] unsigned long xid, [in] sequence< string > resources, [in] string interaction);
-+ void InstallFontconfigResources([in] sequence< string > resources, [in] string interaction);
-
- /**
- * Installs GStreamer resources ( [in] usually codecs) from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallGStreamerResources( [in] unsigned long xid, [in] sequence< string > resources, [in] string interaction);
-+ void InstallGStreamerResources([in] sequence< string > resources, [in] string interaction);
-
- /**
- * Installs resources of a given type from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallResources( [in] unsigned long xid, [in] sequence< string > types, [in] sequence< string > resources, [in] string interaction);
-+ void InstallResources([in] sequence< string > types, [in] sequence< string > resources, [in] string interaction);
-
- /**
- * Removes sequence< string > packages that provide the given local sequence< string > files.
- * @since LibreOffice 4.0
- */
-
-- void RemovePackageByFiles( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
-+ void RemovePackageByFiles([in] sequence< string > files, [in] string interaction);
-
- /**
- * Installs printer drivers from a configured software source.
- * @since LibreOffice 4.0
- */
-
-- void InstallPrinterDrivers( [in] unsigned long xid, [in] sequence< string > files, [in] string interaction);
-+ void InstallPrinterDrivers([in] sequence< string > files, [in] string interaction);
- };
-
- } ; // PackageKit
-diff --git a/officecfg/registry/data/org/openoffice/Office/Common.xcu b/officecfg/registry/data/org/openoffice/Office/Common.xcu
-index 6b94ff9..26d1ba0 100644
---- a/officecfg/registry/data/org/openoffice/Office/Common.xcu
-+++ b/officecfg/registry/data/org/openoffice/Office/Common.xcu
-@@ -535,6 +535,9 @@
-
- true
-
-+
-+ true
-+
-
-
-
-diff --git a/officecfg/registry/schema/org/openoffice/Office/Common.xcs b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
-index f9816fc..2884179 100644
---- a/officecfg/registry/schema/org/openoffice/Office/Common.xcs
-+++ b/officecfg/registry/schema/org/openoffice/Office/Common.xcs
-@@ -6382,6 +6382,12 @@
-
- true
-
-+
-+
-+ Specifies if missing langpack installation should be triggered.
-+
-+ true
-+
-
-
-
-diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
-index 1e2a2ec..e48e5aa 100644
---- a/sfx2/source/appl/appserv.cxx
-+++ b/sfx2/source/appl/appserv.cxx
-@@ -59,6 +59,7 @@
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
-@@ -196,7 +197,7 @@ namespace
- using namespace svtools;
- Reference< XSyncDbusSessionHelper > xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext()));
- Sequence< OUString > vPackages { "libreoffice-base" };
-- xSyncDbusSessionHelper->InstallPackageNames(0, vPackages, OUString());
-+ xSyncDbusSessionHelper->InstallPackageNames(vPackages, OUString());
- // Ill be back (hopefully)!
- SolarMutexGuard aGuard;
- executeRestartDialog(comphelper::getProcessComponentContext(), nullptr, RESTART_REASON_BIBLIOGRAPHY_INSTALL);
-diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
-index a1211f7..1938077 100644
---- a/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
-+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.cxx
-@@ -18,7 +18,7 @@ using namespace ::com::sun::star::uno;
-
- namespace
- {
-- struct GVariantDeleter { void operator()(GVariant* pV) { g_variant_unref(pV); } };
-+ struct GVariantDeleter { void operator()(GVariant* pV) { if (pV) g_variant_unref(pV); } };
- struct GVariantBuilderDeleter { void operator()(GVariantBuilder* pVB) { g_variant_builder_unref(pVB); } };
- template struct GObjectDeleter { void operator()(T* pO) { g_object_unref(pO); } };
- class GErrorWrapper
-@@ -55,8 +55,15 @@ namespace
- return proxy;
- }
-
-+ static GVariant* pk_make_platform_data()
-+ {
-+ GVariantBuilder builder;
-+ g_variant_builder_init(&builder, G_VARIANT_TYPE("a{sv}"));
-+ return g_variant_builder_end(&builder);
-+ }
-+
- void request(
-- char const * method, sal_uInt32 xid,
-+ char const * method,
- css::uno::Sequence const & resources,
- OUString const & interaction)
- {
-@@ -70,14 +77,14 @@ void request(
- }
- auto iactUtf8(OUStringToOString(interaction, RTL_TEXTENCODING_UTF8));
- std::shared_ptr proxy(
-- lcl_GetPackageKitProxy("Modify"), GObjectDeleter());
-+ lcl_GetPackageKitProxy("Modify2"), GObjectDeleter());
- GErrorWrapper error;
-- g_dbus_proxy_call_sync(
-+ std::shared_ptr result(g_dbus_proxy_call_sync(
- proxy.get(), method,
- g_variant_new(
-- "(uass)", static_cast(xid), builder.get(),
-- iactUtf8.getStr()),
-- G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &error.getRef());
-+ "(asss@a{sv})", builder.get(), iactUtf8.getStr(),
-+ "libreoffice-startcenter.desktop", pk_make_platform_data()),
-+ G_DBUS_CALL_FLAGS_NONE, -1, nullptr, &error.getRef()), GVariantDeleter());
- }
-
- }
-@@ -92,66 +99,66 @@ namespace shell { namespace sessioninstall
- }
-
- void SyncDbusSessionHelper::InstallPackageFiles(
-- sal_uInt32 xid, css::uno::Sequence const & files,
-+ css::uno::Sequence const & files,
- OUString const & interaction)
- {
-- request("InstallPackageFiles", xid, files, interaction);
-+ request("InstallPackageFiles", files, interaction);
- }
-
- void SyncDbusSessionHelper::InstallProvideFiles(
-- sal_uInt32 xid, css::uno::Sequence const & files,
-+ css::uno::Sequence const & files,
- OUString const & interaction)
- {
-- request("InstallProvideFiles", xid, files, interaction);
-+ request("InstallProvideFiles", files, interaction);
- }
-
- void SyncDbusSessionHelper::InstallCatalogs(
-- sal_uInt32 xid, css::uno::Sequence const & files,
-+ css::uno::Sequence const & files,
- OUString const & interaction)
- {
-- request("InstallCatalogs", xid, files, interaction);
-+ request("InstallCatalogs", files, interaction);
- }
-
- void SyncDbusSessionHelper::InstallPackageNames(
-- sal_uInt32 xid, css::uno::Sequence const & packages,
-+ css::uno::Sequence const & packages,
- OUString const & interaction)
- {
-- request("InstallPackageNames", xid, packages, interaction);
-+ request("InstallPackageNames", packages, interaction);
- }
-
- void SyncDbusSessionHelper::InstallMimeTypes(
-- sal_uInt32 xid, css::uno::Sequence const & mimeTypes,
-+ css::uno::Sequence const & mimeTypes,
- OUString const & interaction)
- {
-- request("InstallMimeTypes", xid, mimeTypes, interaction);
-+ request("InstallMimeTypes", mimeTypes, interaction);
- }
-
- void SyncDbusSessionHelper::InstallFontconfigResources(
-- sal_uInt32 xid, css::uno::Sequence const & resources,
-+ css::uno::Sequence const & resources,
- OUString const & interaction)
- {
-- request("InstallFontconfigResources", xid, resources, interaction);
-+ request("InstallFontconfigResources", resources, interaction);
- }
-
- void SyncDbusSessionHelper::InstallGStreamerResources(
-- sal_uInt32 xid, css::uno::Sequence const & resources,
-+ css::uno::Sequence const & resources,
- OUString const & interaction)
- {
-- request("InstallGStreamerResources", xid, resources, interaction);
-+ request("InstallGStreamerResources", resources, interaction);
- }
-
- void SyncDbusSessionHelper::RemovePackageByFiles(
-- sal_uInt32 xid, css::uno::Sequence const & files,
-+ css::uno::Sequence const & files,
- OUString const & interaction)
- {
-- request("RemovePackageByFiles", xid, files, interaction);
-+ request("RemovePackageByFiles", files, interaction);
- }
-
- void SyncDbusSessionHelper::InstallPrinterDrivers(
-- sal_uInt32 xid, css::uno::Sequence const & files,
-+ css::uno::Sequence const & files,
- OUString const & interaction)
- {
-- request("InstallPrinteDrivers", xid, files, interaction);
-+ request("InstallPrinteDrivers", files, interaction);
- }
-
- void SAL_CALL SyncDbusSessionHelper::IsInstalled( const OUString& sPackagename, const OUString& sInteraction, sal_Bool& o_isInstalled )
-diff --git a/shell/source/sessioninstall/SyncDbusSessionHelper.hxx b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
-index 731b649..72b17ba 100644
---- a/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
-+++ b/shell/source/sessioninstall/SyncDbusSessionHelper.hxx
-@@ -23,26 +23,26 @@ namespace shell { namespace sessioninstall
- SyncDbusSessionHelper(css::uno::Reference< css::uno::XComponentContext> const&);
-
- // XModify Methods
-- virtual void SAL_CALL InstallPackageFiles( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallPackageFiles( const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallProvideFiles( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallProvideFiles( const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallCatalogs( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallCatalogs( const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallPackageNames( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& packages, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallPackageNames( const css::uno::Sequence< OUString >& packages, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallMimeTypes( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& mimeTypes, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallMimeTypes( const css::uno::Sequence< OUString >& mimeTypes, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallFontconfigResources( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& resources, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallFontconfigResources( const css::uno::Sequence< OUString >& resources, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallGStreamerResources( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& resources, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallGStreamerResources( const css::uno::Sequence< OUString >& resources, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallResources( ::sal_uInt32 /* xid */, const css::uno::Sequence< OUString >& /* types */, const css::uno::Sequence< OUString >& /* resources */, const OUString& /* interaction */ ) override
-+ virtual void SAL_CALL InstallResources( const css::uno::Sequence< OUString >& /* types */, const css::uno::Sequence< OUString >& /* resources */, const OUString& /* interaction */ ) override
- { throw css::uno::RuntimeException(); } // not implemented
-
-- virtual void SAL_CALL RemovePackageByFiles( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-+ virtual void SAL_CALL RemovePackageByFiles( const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-
-- virtual void SAL_CALL InstallPrinterDrivers( ::sal_uInt32 xid, const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-+ virtual void SAL_CALL InstallPrinterDrivers( const css::uno::Sequence< OUString >& files, const OUString& interaction ) override;
-
- // XQuery Methods
- virtual void SAL_CALL IsInstalled( const OUString& /* package_name */, const OUString& /* interaction */, sal_Bool& /* installed */ ) override;
-diff --git a/svl/source/config/languageoptions.cxx b/svl/source/config/languageoptions.cxx
-index 9f9fe45..74af031 100644
---- a/svl/source/config/languageoptions.cxx
-+++ b/svl/source/config/languageoptions.cxx
-@@ -27,7 +27,6 @@
- #include
- #include
- #include
--#include
-
- #ifdef _WIN32
- #if !defined WIN32_LEAN_AND_MEAN
-@@ -256,41 +255,9 @@ bool SvtSystemLanguageOptions::isKeyboardLayoutTypeInstalled(sal_Int16 scriptTyp
- return isInstalled;
- }
-
--
- bool SvtSystemLanguageOptions::isCJKKeyboardLayoutInstalled() const
- {
- return isKeyboardLayoutTypeInstalled(css::i18n::ScriptType::ASIAN);
- }
-
--OUString getInstalledLocaleForLanguage(css::uno::Sequence const & installed, OUString const & locale)
--{
-- if (locale.isEmpty())
-- return OUString(); // do not attempt to resolve anything
--
-- for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
-- if (installed[i] == locale) {
-- return installed[i];
-- }
-- }
-- std::vector fallbacks(LanguageTag(locale).getFallbackStrings(false));
-- for (OUString & rf : fallbacks) {
-- for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
-- if (installed[i] == rf) {
-- return installed[i];
-- }
-- }
-- }
-- return OUString();
--}
--
--OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence& rLocaleElementNames)
--{
-- OUString locale = getInstalledLocaleForLanguage(rLocaleElementNames, officecfg::System::L10N::UILocale::get());
-- if (locale.isEmpty())
-- locale = getInstalledLocaleForLanguage(rLocaleElementNames, "en-US");
-- if (locale.isEmpty() && rLocaleElementNames.hasElements())
-- locale = rLocaleElementNames[0];
-- return locale;
--}
--
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/svtools/source/misc/langhelp.cxx b/svtools/source/misc/langhelp.cxx
-index 16a3a1d..1e4c5c5 100644
---- a/svtools/source/misc/langhelp.cxx
-+++ b/svtools/source/misc/langhelp.cxx
-@@ -7,12 +7,20 @@
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
--
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
- #include
--
-+#include
- #include
-+#include
- #include
--#include
-+#include
-+#include
-+#include
-
- void localizeWebserviceURI( OUString& rURI )
- {
-@@ -33,4 +41,120 @@ void localizeWebserviceURI( OUString& rURI )
- rURI += aLang;
- }
-
-+OUString getInstalledLocaleForLanguage(css::uno::Sequence const & installed, OUString const & locale)
-+{
-+ if (locale.isEmpty())
-+ return OUString(); // do not attempt to resolve anything
-+
-+ for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
-+ if (installed[i] == locale) {
-+ return installed[i];
-+ }
-+ }
-+ std::vector fallbacks(LanguageTag(locale).getFallbackStrings(false));
-+ for (OUString & rf : fallbacks) {
-+ for (sal_Int32 i = 0; i != installed.getLength(); ++i) {
-+ if (installed[i] == rf) {
-+ return installed[i];
-+ }
-+ }
-+ }
-+ return OUString();
-+}
-+
-+static std::unique_ptr xLangpackInstaller;
-+
-+class InstallLangpack : public Idle
-+{
-+ std::vector m_aPackages;
-+public:
-+ explicit InstallLangpack(const std::vector& rPackages)
-+ : Idle("install langpack")
-+ , m_aPackages(rPackages)
-+ {
-+ SetPriority(TaskPriority::LOWEST);
-+ }
-+
-+ virtual void Invoke() override
-+ {
-+ vcl::Window* pTopWindow = Application::GetActiveTopWindow();
-+ if (!pTopWindow)
-+ pTopWindow = Application::GetFirstTopLevelWindow();
-+ if (!pTopWindow)
-+ {
-+ Start();
-+ return;
-+ }
-+ try
-+ {
-+ using namespace org::freedesktop::PackageKit;
-+ css::uno::Reference xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext()));
-+ xSyncDbusSessionHelper->InstallPackageNames(comphelper::containerToSequence(m_aPackages), OUString());
-+ }
-+ catch (const css::uno::Exception& e)
-+ {
-+ SAL_INFO("svl", "trying to install a LibreOffice langpack, caught " << e);
-+ }
-+ xLangpackInstaller.reset();
-+ }
-+};
-+
-+OUString getInstalledLocaleForSystemUILanguage(const css::uno::Sequence& rLocaleElementNames, bool bRequestInstallIfMissing)
-+{
-+ OUString wantedLocale = officecfg::System::L10N::UILocale::get();
-+ OUString locale = getInstalledLocaleForLanguage(rLocaleElementNames, wantedLocale);
-+ if (bRequestInstallIfMissing && locale.isEmpty() && !wantedLocale.isEmpty() && !Application::IsHeadlessModeEnabled() &&
-+ officecfg::Office::Common::PackageKit::EnableLangpackInstallation::get())
-+ {
-+ LanguageTag aWantedTag(wantedLocale);
-+ if (aWantedTag.getLanguage() != "en")
-+ {
-+ // We try these bases + the exact locale + fallback locale.
-+ //
-+ // The theory is that we can request a bunch of packages
-+ // and it's a success if one of them is available
-+ std::vector aPackages;
-+ OUString sAvailableLocales(WITH_LANG);
-+ std::vector aAvailable;
-+ sal_Int32 nIndex = 0;
-+ do
-+ {
-+ aAvailable.emplace_back(sAvailableLocales.getToken(0, ' ', nIndex));
-+ }
-+ while (nIndex >= 0);
-+ OUString install = getInstalledLocaleForLanguage(comphelper::containerToSequence(aAvailable), wantedLocale);
-+ if (!install.isEmpty() && install != "en-US")
-+ {
-+ if (strcmp(OOO_VENDOR, "Red Hat, Inc.") == 0 || strcmp(OOO_VENDOR, "The Fedora Project") == 0)
-+ {
-+ // langpack is the typical Fedora/RHEL naming convention
-+ LanguageType eType = aWantedTag.getLanguageType();
-+ if (MsLangId::isSimplifiedChinese(eType))
-+ aPackages.emplace_back("libreoffice-langpack-zh-Hans");
-+ else if (MsLangId::isTraditionalChinese(eType))
-+ aPackages.emplace_back("libreoffice-langpack-zh-Hant");
-+ else
-+ aPackages.emplace_back("libreoffice-langpack-" + install);
-+ }
-+ //Debian would be: "The Document Foundation/Debian"
-+ else if (strcmp(OOO_VENDOR, "The Document Foundation, Debian and Ubuntu") == 0)
-+ {
-+ // l10n is the typical Debian/Ubuntu naming convention
-+ aPackages.emplace_back("libreoffice-l10n-" + install);
-+ }
-+ }
-+ if (!aPackages.empty())
-+ {
-+ xLangpackInstaller.reset(new InstallLangpack(aPackages));
-+ xLangpackInstaller->Start();
-+ }
-+ }
-+ }
-+ if (locale.isEmpty())
-+ locale = getInstalledLocaleForLanguage(rLocaleElementNames, "en-US");
-+ if (locale.isEmpty() && rLocaleElementNames.hasElements())
-+ locale = rLocaleElementNames[0];
-+ return locale;
-+}
-+
- /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
-index 467112e..6986807 100644
---- a/sw/source/uibase/app/apphdl.cxx
-+++ b/sw/source/uibase/app/apphdl.cxx
-@@ -44,6 +44,7 @@
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
-@@ -420,7 +421,7 @@ void SwMailMergeWizardExecutor::ExecuteMailMergeWizard( const SfxItemSet * pArgs
- using namespace svtools;
- css::uno::Reference< XSyncDbusSessionHelper > xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext()));
- const css::uno::Sequence< OUString > vPackages{ "libreoffice-base" };
-- xSyncDbusSessionHelper->InstallPackageNames(0, vPackages, OUString());
-+ xSyncDbusSessionHelper->InstallPackageNames(vPackages, OUString());
- SolarMutexGuard aGuard;
- executeRestartDialog(comphelper::getProcessComponentContext(), nullptr, RESTART_REASON_MAILMERGE_INSTALL);
- }
-diff --git a/vcl/inc/unx/fontmanager.hxx b/vcl/inc/unx/fontmanager.hxx
-index 03d033e..14aebde 100644
---- a/vcl/inc/unx/fontmanager.hxx
-+++ b/vcl/inc/unx/fontmanager.hxx
-@@ -192,14 +192,10 @@ class VCL_PLUGIN_PUBLIC PrintFontManager
- static void addFontconfigDir(const OString& rDirectory);
-
- std::set m_aPreviousLangSupportRequests;
--#if ENABLE_GIO
-- std::vector m_aCurrentRequests;
--#endif
-+ std::vector m_aCurrentRequests;
- Timer m_aFontInstallerTimer;
-
--#if ENABLE_GIO
- DECL_LINK( autoInstallFontLangSupport, Timer*, void );
--#endif
- PrintFontManager();
- public:
- ~PrintFontManager();
-diff --git a/vcl/unx/generic/fontmanager/fontconfig.cxx b/vcl/unx/generic/fontmanager/fontconfig.cxx
-index 2c16e04..59acfa5 100644
---- a/vcl/unx/generic/fontmanager/fontconfig.cxx
-+++ b/vcl/unx/generic/fontmanager/fontconfig.cxx
-@@ -20,6 +20,7 @@
- #include
- #include
- #include
-+#include
- #include
- #include
- #include
-@@ -31,8 +32,8 @@
- #include
- #include
- #include
--#include
- #include
-+#include
-
- using namespace psp;
-
-@@ -40,10 +41,6 @@ using namespace psp;
- #include
- #include
-
--#if ENABLE_GIO
--#include
--#endif
--
- #include
- #include
-
-@@ -862,96 +859,28 @@ namespace
- aBuf.append('-').append(pScriptCode);
- return OStringToOUString(aBuf.makeStringAndClear(), RTL_TEXTENCODING_UTF8);
- }
--
--#if ENABLE_GIO
-- guint get_xid_for_dbus()
-- {
-- // FIXME: Application::GetActiveTopWindow only returns something sensible if LO currently has the focus
-- // (which is not the case when you are trying to debug this...). It should instead return the last active window.
-- const vcl::Window *pTopWindow = Application::IsHeadlessModeEnabled() ? nullptr : Application::GetActiveTopWindow();
-- const SystemEnvData* pEnvData = pTopWindow ? pTopWindow->GetSystemData() : nullptr;
-- return pEnvData ? pEnvData->aWindow : 0;
-- }
--#endif
- }
-
--#if ENABLE_GIO
- IMPL_LINK_NOARG(PrintFontManager, autoInstallFontLangSupport, Timer *, void)
- {
-- if (!officecfg::Office::Common::PackageKit::EnableFontInstallation::get())
-- return;
--
-- guint xid = get_xid_for_dbus();
--
-- if (!xid)
-+ try
- {
-- SAL_WARN("vcl", "Could not retrieve X Window ID for DBUS");
-- return;
-+ using namespace org::freedesktop::PackageKit;
-+ css::uno::Reference xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext()));
-+ xSyncDbusSessionHelper->InstallFontconfigResources(comphelper::containerToSequence(m_aCurrentRequests), "hide-finished");
- }
--
--
-- GError *error = nullptr;
-- /* get the DBUS session connection */
-- GDBusConnection *session_connection = g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, &error);
-- if (error != nullptr)
-- {
-- g_debug ("DBUS cannot connect : %s", error->message);
-- g_error_free (error);
-- return;
-- }
--
-- /* get the proxy with gnome-session-manager */
-- GDBusProxy *proxy = g_dbus_proxy_new_sync(session_connection,
-- G_DBUS_PROXY_FLAGS_NONE,
-- nullptr, // GDBusInterfaceInfo
-- "org.freedesktop.PackageKit",
-- "/org/freedesktop/PackageKit",
-- "org.freedesktop.PackageKit.Modify",
-- nullptr, // GCancellable
-- &error);
-- if (proxy == nullptr && error != nullptr)
-- {
-- g_debug("Could not get DBUS proxy: org.freedesktop.PackageKit: %s", error->message);
-- g_error_free(error);
-- return;
-- }
--
-- GVariantBuilder *builder = g_variant_builder_new (G_VARIANT_TYPE("as")); // 'as'=array of strings
-- for (std::vector::const_iterator aI = m_aCurrentRequests.begin(); aI != m_aCurrentRequests.end(); ++aI)
-- g_variant_builder_add (builder, "s", aI->getStr());
--
-- GVariant *res = g_dbus_proxy_call_sync(proxy,
-- "InstallFontconfigResources",
-- // Create a new variant with the following types:
-- // 'u'=guint32 (xid); 'as'=array of strings (builder); 's'=string ("hide-finished")
-- // See also https://people.gnome.org/~ryanl/glib-docs/gvariant-format-strings.html
-- g_variant_new("(uass)", xid, builder, "hide-finished"),
-- G_DBUS_CALL_FLAGS_NONE,
-- -1, // Timeout
-- nullptr, // GCancellable
-- &error);
--
-- if (res == nullptr && error != nullptr)
-+ catch (const css::uno::Exception& e)
- {
-+ SAL_INFO("vcl", "InstallFontconfigResources problem, caught " << e);
- // Disable this method from now on. It's simply not available on some systems
- // and leads to an error dialog being shown each time this is called tdf#104883
- std::shared_ptr batch( comphelper::ConfigurationChanges::create() );
- officecfg::Office::Common::PackageKit::EnableFontInstallation::set(false, batch);
- batch->commit();
-- g_debug("InstallFontconfigResources problem : %s", error->message);
-- g_error_free(error);
-- }
-- else
-- {
-- g_variant_unref(res);
- }
-
-- g_variant_builder_unref(builder);
-- g_object_unref(G_OBJECT (proxy));
--
- m_aCurrentRequests.clear();
- }
--#endif
-
- void PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissingCodes )
- {
-@@ -1107,8 +1036,7 @@ void PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissi
- }
- }
- OUString sStillMissing(pRemainingCodes.get(), nRemainingLen);
--#if ENABLE_GIO
-- if (get_xid_for_dbus())
-+ if (!Application::IsHeadlessModeEnabled() && officecfg::Office::Common::PackageKit::EnableFontInstallation::get())
- {
- if (sStillMissing == rMissingCodes) //replaced nothing
- {
-@@ -1127,7 +1055,7 @@ void PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissi
- if (!sTag.isEmpty() && m_aPreviousLangSupportRequests.find(sTag) == m_aPreviousLangSupportRequests.end())
- {
- OString sReq = OString(":lang=") + sTag;
-- m_aCurrentRequests.push_back(sReq);
-+ m_aCurrentRequests.push_back(OUString::fromUtf8(sReq));
- m_aPreviousLangSupportRequests.insert(sTag);
- }
- }
-@@ -1138,7 +1066,6 @@ void PrintFontManager::Substitute( FontSelectPattern &rPattern, OUString& rMissi
- m_aFontInstallerTimer.Start();
- }
- }
--#endif
- rMissingCodes = sStillMissing;
- }
- }
-diff --git a/vcl/unx/generic/fontmanager/fontmanager.cxx b/vcl/unx/generic/fontmanager/fontmanager.cxx
-index c956345..d1743dd 100644
---- a/vcl/unx/generic/fontmanager/fontmanager.cxx
-+++ b/vcl/unx/generic/fontmanager/fontmanager.cxx
-@@ -146,10 +146,8 @@ PrintFontManager::PrintFontManager()
- : m_nNextFontID( 1 )
- , m_nNextDirAtom( 1 )
- {
--#if ENABLE_GIO
- m_aFontInstallerTimer.SetInvokeHandler(LINK(this, PrintFontManager, autoInstallFontLangSupport));
- m_aFontInstallerTimer.SetTimeout(5000);
--#endif
- }
-
- PrintFontManager::~PrintFontManager()
---
-2.9.5
-