basegfx/source/tools/bgradient.cxx                        |   76 +++++++-------
 basegfx/source/tools/gradienttools.cxx                    |   24 ++--
 chart2/qa/extras/chart2import.cxx                         |   20 +--
 cui/source/tabpages/tpgradnt.cxx                          |    4 
 cui/source/tabpages/tptrans.cxx                           |    4 
 docmodel/source/uno/UnoGradientTools.cxx                  |    7 -
 drawinglayer/source/attribute/fillgradientattribute.cxx   |    4 
 drawinglayer/source/processor2d/cairopixelprocessor2d.cxx |   10 -
 drawinglayer/source/texture/texture.cxx                   |   24 ++--
 drawinglayer/source/tools/primitive2dxmldump.cxx          |    9 -
 filter/source/svg/svgwriter.cxx                           |    6 -
 include/basegfx/utils/bgradient.hxx                       |   64 ++++++++---
 oox/qa/unit/drawingml.cxx                                 |   20 +--
 oox/qa/unit/shape.cxx                                     |   64 +++++------
 oox/source/drawingml/fillproperties.cxx                   |    4 
 sc/qa/unit/subsequent_filters_test3.cxx                   |   16 +-
 sd/qa/unit/export-tests-ooxml1.cxx                        |   24 ++--
 sd/qa/unit/export-tests-ooxml2.cxx                        |    8 -
 sd/qa/unit/export-tests-ooxml4.cxx                        |   16 +-
 sd/qa/unit/misc-tests.cxx                                 |    8 -
 sd/qa/unit/uiimpress.cxx                                  |    8 -
 sd/source/ui/sidebar/SlideBackground.cxx                  |    4 
 svx/source/sidebar/area/AreaPropertyPanelBase.cxx         |   10 -
 svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx |    6 -
 sw/qa/extras/odfexport/odfexport.cxx                      |   16 +-
 sw/qa/extras/ooxmlexport/ooxmlexport7.cxx                 |    8 -
 sw/source/filter/ww8/rtfattributeoutput.cxx               |    2 
 vcl/source/filter/svm/SvmReader.cxx                       |    2 
 28 files changed, 246 insertions(+), 222 deletions(-)

New commits:
commit 959decdcda7f07ed9a62bf3de8d2a117c72e180e
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Mon Dec 8 16:49:36 2025 +0900
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Mon Dec 8 13:40:28 2025 +0100

    basegfx: BColorStops shouldn't derive from std::vector
    
    Change-Id: I9f246c0d9a5ddc7f8cf428bf7fc8c8957e8584b6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158710
    Reviewed-by: Tomaž Vajngerl <[email protected]>
    Tested-by: Jenkins

diff --git a/basegfx/source/tools/bgradient.cxx 
b/basegfx/source/tools/bgradient.cxx
index 5cc7a326f7dc..0c07327cd9c8 100644
--- a/basegfx/source/tools/bgradient.cxx
+++ b/basegfx/source/tools/bgradient.cxx
@@ -72,8 +72,8 @@ namespace basegfx
 // BColorStops for a single StartColor @0.0 & EndColor @1.0
 BColorStops::BColorStops(const BColor& rStart, const BColor& rEnd)
 {
-    emplace_back(0.0, rStart);
-    emplace_back(1.0, rEnd);
+    addStop(0.0, rStart);
+    addStop(1.0, rEnd);
 }
 
 /* Helper to grep the correct ColorStop out of
@@ -208,8 +208,8 @@ void BColorStops::replaceStartColor(const BColor& rStart)
     BColorStops aNewColorStops;
 
     aNewColorStops.reserve(size() + 1);
-    aNewColorStops.emplace_back(0.0, rStart);
-    aNewColorStops.insert(aNewColorStops.end(), a1stNonStartColor, end());
+    aNewColorStops.addStop(0.0, rStart);
+    aNewColorStops.maStops.insert(aNewColorStops.end(), a1stNonStartColor, 
end());
 
     // assign & done
     *this = std::move(aNewColorStops);
@@ -225,10 +225,10 @@ void BColorStops::replaceEndColor(const BColor& rEnd)
 {
     // erase all evtl. existing EndColor(s)
     while (!empty() && basegfx::fTools::moreOrEqual(back().getStopOffset(), 
1.0))
-        pop_back();
+        removeLastStop();
 
     // add at the end of existing ColorStops
-    emplace_back(1.0, rEnd);
+    addStop(1.0, rEnd);
 }
 
 /* Tooling method to linearly blend the Colors contained in
@@ -309,7 +309,7 @@ void BColorStops::sortAndCorrect()
         //       be somewhere in-between what is allowed
         const BColorStop aEntry(front());
         clear();
-        emplace_back(std::max(0.0, std::min(1.0, aEntry.getStopOffset())), 
aEntry.getStopColor());
+        addStop(std::max(0.0, std::min(1.0, aEntry.getStopOffset())), 
aEntry.getStopColor());
 
         // done
         return;
@@ -330,21 +330,21 @@ void BColorStops::sortAndCorrect()
     for (size_t read(0); read < size(); read++)
     {
         // get offset of entry at read position
-        double fOff((*this)[read].getStopOffset());
+        double fOff = maStops[read].getStopOffset();
 
         if (fOff < 0.0 && read + 1 < size())
         {
             // value < 0.0 and we have a next entry. check for gradient snippet
             // containing 0.0 resp. StartColor
-            const double fOff2((*this)[read + 1].getStopOffset());
+            const double fOff2 = maStops[read + 1].getStopOffset();
 
             if (fOff2 > 0.0)
             {
                 // read is the start of a gradient snippet containing 0.0. 
Correct
                 // entry to StartColor, interpolate to correct StartColor
-                (*this)[read]
-                    = BColorStop(0.0, 
basegfx::interpolate((*this)[read].getStopColor(),
-                                                           (*this)[read + 
1].getStopColor(),
+                maStops[read]
+                    = BColorStop(0.0, 
basegfx::interpolate(maStops[read].getStopColor(),
+                                                           maStops[read + 
1].getStopColor(),
                                                            (0.0 - fOff) / 
(fOff2 - fOff)));
 
                 // adapt fOff
@@ -362,16 +362,16 @@ void BColorStops::sortAndCorrect()
         {
             // value < 1.0 and we have a next entry. check for gradient snippet
             // containing 1.0 resp. EndColor
-            const double fOff2((*this)[read + 1].getStopOffset());
+            const double fOff2(maStops[read + 1].getStopOffset());
 
             if (basegfx::fTools::more(fOff2, 1.0))
             {
                 // read is the start of a gradient snippet containing 1.0. 
Correct
                 // next entry to EndColor, interpolate to correct EndColor
-                (*this)[read + 1]
-                    = BColorStop(1.0, 
basegfx::interpolate((*this)[read].getStopColor(),
-                                                           (*this)[read + 
1].getStopColor(),
-                                                           (1.0 - fOff) / 
(fOff2 - fOff)));
+                auto nColor = 
basegfx::interpolate(maStops[read].getStopColor(),
+                                                   maStops[read + 
1].getStopColor(),
+                                                   (1.0 - fOff) / (fOff2 - 
fOff));
+                maStops[read + 1] = BColorStop(1.0, nColor);
 
                 // adapt fOff
                 fOff = 1.0;
@@ -388,12 +388,12 @@ void BColorStops::sortAndCorrect()
         // entry is valid value at read position
         // copy if write target is empty (write at start) or when
         // write target is different to read in color or offset
-        if (0 == write || !((*this)[read] == (*this)[write - 1]))
+        if (0 == write || !(maStops[read] == maStops[write - 1]))
         {
             if (write != read)
             {
                 // copy read to write backwards to close gaps
-                (*this)[write] = (*this)[read];
+                maStops[write] = maStops[read];
             }
 
             // always forward write position
@@ -415,19 +415,19 @@ void BColorStops::sortAndCorrect()
                 // all outside too low, rescue last due to being closest to 
content
                 const BColor aBackColor(back().getStopColor());
                 clear();
-                emplace_back(0.0, aBackColor);
+                addStop(0.0, aBackColor);
             }
             else // if (basegfx::fTools::more(front().getStopOffset(), 1.0))
             {
                 // all outside too high, rescue first due to being closest to 
content
                 const BColor aFrontColor(front().getStopColor());
                 clear();
-                emplace_back(1.0, aFrontColor);
+                addStop(1.0, aFrontColor);
             }
         }
         else
         {
-            resize(write);
+            maStops.resize(write);
         }
     }
 }
@@ -524,8 +524,8 @@ void BColorStops::createSpaceAtStart(double fOffset)
 
     for (const auto& candidate : *this)
     {
-        aNewStops.emplace_back(fOffset + (candidate.getStopOffset() * (1.0 - 
fOffset)),
-                               candidate.getStopColor());
+        aNewStops.addStop(fOffset + (candidate.getStopOffset() * (1.0 - 
fOffset)),
+                          candidate.getStopColor());
     }
 
     *this = std::move(aNewStops);
@@ -554,8 +554,8 @@ void BColorStops::removeSpaceAtStart(double fOffset)
     {
         if (basegfx::fTools::moreOrEqual(candidate.getStopOffset(), fOffset))
         {
-            aNewStops.emplace_back((candidate.getStopOffset() - fOffset) * 
fMul,
-                                   candidate.getStopColor());
+            aNewStops.addStop((candidate.getStopOffset() - fOffset) * fMul,
+                              candidate.getStopColor());
         }
     }
 
@@ -631,8 +631,8 @@ void BColorStops::doApplyAxial()
 
     while (aRevCurrColor != rend())
     {
-        aNewColorStops.emplace_back((1.0 - aRevCurrColor->getStopOffset()) * 
0.5,
-                                    aRevCurrColor->getStopColor());
+        aNewColorStops.addStop((1.0 - aRevCurrColor->getStopOffset()) * 0.5,
+                               aRevCurrColor->getStopColor());
         aRevCurrColor++;
     }
 
@@ -650,8 +650,8 @@ void BColorStops::doApplyAxial()
     // add gradient stops in non-reverse order, translated and scaled to [0.5 
.. 1.0]
     while (aCurrColor != end())
     {
-        aNewColorStops.emplace_back((aCurrColor->getStopOffset() * 0.5) + 0.5,
-                                    aCurrColor->getStopColor());
+        aNewColorStops.addStop((aCurrColor->getStopOffset() * 0.5) + 0.5,
+                               aCurrColor->getStopColor());
         aCurrColor++;
     }
 
@@ -686,7 +686,7 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount)
             // add start color, but check if it is already there - which is the
             // case from the 2nd segment on due to a new segment starting with
             // the same color as the previous one ended
-            aNewColorStops.push_back(*aColorL);
+            aNewColorStops.addStop(*aColorL);
         }
         if (!basegfx::fTools::equalZero(fDelta))
         {
@@ -708,12 +708,12 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount)
                     const double fPosition(fStart + fOffsetStep * 
static_cast<double>(a));
 
                     // add end color of previous sub-segment
-                    aNewColorStops.emplace_back(
+                    aNewColorStops.addStop(
                         fPosition, basegfx::interpolate(rStartColor, rEndColor,
                                                         static_cast<double>(a 
- 1) * fSingleStep));
 
                     // add start color of current sub-segment
-                    aNewColorStops.emplace_back(
+                    aNewColorStops.addStop(
                         fPosition, basegfx::interpolate(rStartColor, rEndColor,
                                                         static_cast<double>(a) 
* fSingleStep));
                 }
@@ -721,7 +721,7 @@ void BColorStops::doApplySteps(sal_uInt16 nStepCount)
         }
 
         // always add end color of segment
-        aNewColorStops.push_back(*aColorR);
+        aNewColorStops.addStop(*aColorR);
 
         // next segment
         aColorL++;
@@ -810,8 +810,8 @@ BGradient::BGradient()
     , nIntensEnd(100)
     , nStepCount(0)
 {
-    aColorStops.emplace_back(0.0, BColor(0.0, 0.0, 0.0)); // COL_BLACK
-    aColorStops.emplace_back(1.0, BColor(1.0, 1.0, 1.0)); // COL_WHITE
+    aColorStops.addStop(0.0, BColor(0.0, 0.0, 0.0)); // COL_BLACK
+    aColorStops.addStop(1.0, BColor(1.0, 1.0, 1.0)); // COL_WHITE
 }
 
 BGradient::BGradient(const basegfx::BColorStops& rColorStops, 
css::awt::GradientStyle eTheStyle,
@@ -844,7 +844,7 @@ void BGradient::SetColorStops(const basegfx::BColorStops& 
rSteps)
     aColorStops = rSteps;
     aColorStops.sortAndCorrect();
     if (aColorStops.empty())
-        aColorStops.emplace_back(0.0, basegfx::BColor());
+        aColorStops.addStop(0.0, basegfx::BColor());
 }
 
 namespace
@@ -989,7 +989,7 @@ void BGradient::tryToConvertToAxial()
     {
         BColorStop aNextStop(std::clamp((*aIter).getStopOffset() * 2.0, 0.0, 
1.0),
                              (*aIter).getStopColor());
-        aAxialColorStops.push_back(aNextStop);
+        aAxialColorStops.addStop(aNextStop);
         ++aIter;
     }
     // Axial gradients have outmost color as last color stop.
diff --git a/basegfx/source/tools/gradienttools.cxx 
b/basegfx/source/tools/gradienttools.cxx
index bf5060708eaf..d3383953cbe3 100644
--- a/basegfx/source/tools/gradienttools.cxx
+++ b/basegfx/source/tools/gradienttools.cxx
@@ -344,7 +344,7 @@ namespace basegfx
                     // create fallback synched with existing AlphaStops
                     for (const auto& cand : rAlphaStops)
                     {
-                        rColorStops.emplace_back(cand.getStopOffset(), 
rSingleColor);
+                        rColorStops.addStop(cand.getStopOffset(), 
rSingleColor);
                     }
                 }
 
@@ -357,7 +357,7 @@ namespace basegfx
                 // create fallback AlphaStops synched with existing ColorStops 
using SingleAlpha
                 for (const auto& cand : rColorStops)
                 {
-                    rAlphaStops.emplace_back(cand.getStopOffset(), 
rSingleAlpha);
+                    rAlphaStops.addStop(cand.getStopOffset(), rSingleAlpha);
                 }
 
                 // preparations complete, we are done
@@ -414,24 +414,24 @@ namespace basegfx
                         if (fTools::less(fColorOff, fAlphaOff))
                         {
                             // copy color, create alpha
-                            aNewColor.emplace_back(fColorOff, 
aCurrColor->getStopColor());
-                            aNewAlpha.emplace_back(fColorOff, 
rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange));
+                            aNewColor.addStop(fColorOff, 
aCurrColor->getStopColor());
+                            aNewAlpha.addStop(fColorOff, 
rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange));
                             bRealChange = true;
                             aCurrColor++;
                         }
                         else if (fTools::more(fColorOff, fAlphaOff))
                         {
                             // copy alpha, create color
-                            aNewColor.emplace_back(fAlphaOff, 
rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange));
-                            aNewAlpha.emplace_back(fAlphaOff, 
aCurrAlpha->getStopColor());
+                            aNewColor.addStop(fAlphaOff, 
rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange));
+                            aNewAlpha.addStop(fAlphaOff, 
aCurrAlpha->getStopColor());
                             bRealChange = true;
                             aCurrAlpha++;
                         }
                         else
                         {
                             // equal: copy both, advance
-                            aNewColor.emplace_back(fColorOff, 
aCurrColor->getStopColor());
-                            aNewAlpha.emplace_back(fAlphaOff, 
aCurrAlpha->getStopColor());
+                            aNewColor.addStop(fColorOff, 
aCurrColor->getStopColor());
+                            aNewAlpha.addStop(fAlphaOff, 
aCurrAlpha->getStopColor());
                             aCurrColor++;
                             aCurrAlpha++;
                         }
@@ -439,16 +439,16 @@ namespace basegfx
                     else if (bColor)
                     {
                         const double fColorOff(aCurrColor->getStopOffset());
-                        aNewAlpha.emplace_back(fColorOff, 
rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange));
-                        aNewColor.emplace_back(fColorOff, 
aCurrColor->getStopColor());
+                        aNewAlpha.addStop(fColorOff, 
rAlphaStops.getInterpolatedBColor(fColorOff, 0, aAlphaStopRange));
+                        aNewColor.addStop(fColorOff, 
aCurrColor->getStopColor());
                         bRealChange = true;
                         aCurrColor++;
                     }
                     else if (bAlpha)
                     {
                         const double fAlphaOff(aCurrAlpha->getStopOffset());
-                        aNewColor.emplace_back(fAlphaOff, 
rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange));
-                        aNewAlpha.emplace_back(fAlphaOff, 
aCurrAlpha->getStopColor());
+                        aNewColor.addStop(fAlphaOff, 
rColorStops.getInterpolatedBColor(fAlphaOff, 0, aColorStopRange));
+                        aNewAlpha.addStop(fAlphaOff, 
aCurrAlpha->getStopColor());
                         bRealChange = true;
                         aCurrAlpha++;
                     }
diff --git a/chart2/qa/extras/chart2import.cxx 
b/chart2/qa/extras/chart2import.cxx
index 9f0abcd4c146..a24a8b90dffe 100644
--- a/chart2/qa/extras/chart2import.cxx
+++ b/chart2/qa/extras/chart2import.cxx
@@ -673,12 +673,12 @@ CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testBnc889755)
     const basegfx::BColorStops aColorStops = 
model::gradient::getColorStopsFromUno(aTransparence.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(Color(0x404040), 
Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
0.070000000000000007));
-    CPPUNIT_ASSERT_EQUAL(Color(0x404040), 
Color(aColorStops[1].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 
0.080000000000000002));
-    CPPUNIT_ASSERT_EQUAL(COL_WHITE,  Color(aColorStops[2].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
0.070000000000000007));
+    CPPUNIT_ASSERT_EQUAL(Color(0x404040), Color(aColorStops.getStopColor(1)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 
0.080000000000000002));
+    CPPUNIT_ASSERT_EQUAL(COL_WHITE,  Color(aColorStops.getStopColor(2)));
 }
 
 CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testBnc882383)
@@ -717,10 +717,10 @@ CPPUNIT_TEST_FIXTURE(Chart2ImportTest, 
testTransparencyGradientValue)
 
     // MCGR: Use the whole completely imported transparency gradient to check 
for correctness
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), 
Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(Color(0x333333), 
Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x333333), Color(aColorStops.getStopColor(1)));
 }
 
 CPPUNIT_TEST_FIXTURE(Chart2ImportTest, testSimpleStrictXLSX)
diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index 91342ba7b8a6..f29acef6d3ad 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -671,8 +671,8 @@ basegfx::BColorStops SvxGradientTabPage::createColorStops()
     }
     else
     {
-        aColorStops.emplace_back(0.0, 
m_xLbColorFrom->GetSelectEntryColor().getBColor());
-        aColorStops.emplace_back(1.0, 
m_xLbColorTo->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(0.0, 
m_xLbColorFrom->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(1.0, 
m_xLbColorTo->GetSelectEntryColor().getBColor());
     }
 
     return aColorStops;
diff --git a/cui/source/tabpages/tptrans.cxx b/cui/source/tabpages/tptrans.cxx
index c52d6a6e6754..6682ff955ca7 100644
--- a/cui/source/tabpages/tptrans.cxx
+++ b/cui/source/tabpages/tptrans.cxx
@@ -526,8 +526,8 @@ basegfx::BColorStops 
SvxTransparenceTabPage::createColorStops()
     }
     else
     {
-        aColorStops.emplace_back(0.0, aStartBColor);
-        aColorStops.emplace_back(1.0, aEndBColor);
+        aColorStops.addStop(0.0, aStartBColor);
+        aColorStops.addStop(1.0, aEndBColor);
     }
 
     return aColorStops;
diff --git a/docmodel/source/uno/UnoGradientTools.cxx 
b/docmodel/source/uno/UnoGradientTools.cxx
index 06187c1fac8c..172d4cf2efe8 100644
--- a/docmodel/source/uno/UnoGradientTools.cxx
+++ b/docmodel/source/uno/UnoGradientTools.cxx
@@ -92,10 +92,9 @@ void fillFromColorStopSequence(basegfx::BColorStops& 
rColorStops,
 
         for (css::awt::ColorStop const& rSourceStop : rUnoColorStopSequence)
         {
-            rColorStops.emplace_back(rSourceStop.StopOffset,
-                                     basegfx::BColor(rSourceStop.StopColor.Red,
-                                                     
rSourceStop.StopColor.Green,
-                                                     
rSourceStop.StopColor.Blue));
+            basegfx::BColor aBColor(rSourceStop.StopColor.Red, 
rSourceStop.StopColor.Green,
+                                    rSourceStop.StopColor.Blue);
+            rColorStops.addStop(rSourceStop.StopOffset, aBColor);
         }
     }
 }
diff --git a/drawinglayer/source/attribute/fillgradientattribute.cxx 
b/drawinglayer/source/attribute/fillgradientattribute.cxx
index 574cd05dbf52..f6f9d9b47dad 100644
--- a/drawinglayer/source/attribute/fillgradientattribute.cxx
+++ b/drawinglayer/source/attribute/fillgradientattribute.cxx
@@ -64,7 +64,7 @@ namespace drawinglayer::attribute
                 // fallback value
                 if (maColorStops.empty())
                 {
-                    maColorStops.emplace_back(0.0, basegfx::BColor());
+                    maColorStops.addStop(0.0, basegfx::BColor());
                 }
             }
 
@@ -78,7 +78,7 @@ namespace drawinglayer::attribute
                 mnSteps(0)
             {
                 // always add a fallback color, see above
-                maColorStops.emplace_back(0.0, basegfx::BColor());
+                maColorStops.addStop(0.0, basegfx::BColor());
             }
 
             // data read access
diff --git a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx 
b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx
index 24e29f2b4ae7..0561d9ec27d0 100644
--- a/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/cairopixelprocessor2d.cxx
@@ -2874,12 +2874,12 @@ void 
CairoPixelProcessor2D::processFillGradientPrimitive2D_linear_axial(
     // add color stops
     for (size_t a(0); a < aBColorStops.size(); a++)
     {
-        const basegfx::BColorStop& rStop(aBColorStops[a]);
+        const basegfx::BColorStop& rStop = aBColorStops.getStop(a);
         const basegfx::BColor 
aColor(maBColorModifierStack.getModifiedColor(rStop.getStopColor()));
 
         if (bHasAlpha)
         {
-            const basegfx::BColor aAlpha(aBColorStopsAlpha[a].getStopColor());
+            const basegfx::BColor aAlpha(aBColorStopsAlpha.getStopColor(a));
             cairo_pattern_add_color_stop_rgba(pPattern, rStop.getStopOffset(), 
aColor.getRed(),
                                               aColor.getGreen(), 
aColor.getBlue(),
                                               1.0 - aAlpha.luminance());
@@ -3276,12 +3276,12 @@ void 
CairoPixelProcessor2D::processFillGradientPrimitive2D_radial_elliptical(
     // add color stops
     for (size_t a(0); a < aBColorStops.size(); a++)
     {
-        const basegfx::BColorStop& rStop(aBColorStops[a]);
+        const basegfx::BColorStop& rStop = aBColorStops.getStop(a);
         const basegfx::BColor 
aColor(maBColorModifierStack.getModifiedColor(rStop.getStopColor()));
 
         if (bHasAlpha)
         {
-            const basegfx::BColor aAlpha(aBColorStopsAlpha[a].getStopColor());
+            const basegfx::BColor aAlpha(aBColorStopsAlpha.getStopColor(a));
             cairo_pattern_add_color_stop_rgba(pPattern, rStop.getStopOffset(), 
aColor.getRed(),
                                               aColor.getGreen(), 
aColor.getBlue(),
                                               1.0 - aAlpha.luminance());
@@ -3652,7 +3652,7 @@ void 
CairoPixelProcessor2D::processPolyPolygonAlphaGradientPrimitive2D(
     // create ColorStops at same stops but single color
     aColorStops.reserve(rAlphaStops.size());
     for (const auto& entry : rAlphaStops)
-        aColorStops.emplace_back(entry.getStopOffset(), aFillColor);
+        aColorStops.addStop(entry.getStopOffset(), aFillColor);
 
     // create FillGradient using that single-color ColorStops
     const attribute::FillGradientAttribute aFillGradient(
diff --git a/drawinglayer/source/texture/texture.cxx 
b/drawinglayer/source/texture/texture.cxx
index 48f60738677c..cb808ff96ac9 100644
--- a/drawinglayer/source/texture/texture.cxx
+++ b/drawinglayer/source/texture/texture.cxx
@@ -152,7 +152,7 @@ namespace drawinglayer::texture
                 // created gradient geometry.
                 // The simplest way is to temporarily add an entry to the local
                 // ColorStops for this at 1.0 (using same color)
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // prepare unit range transform
@@ -224,7 +224,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
@@ -300,7 +300,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // temporarily add a ColorStop entry
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // prepare unit range transform
@@ -357,7 +357,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
@@ -420,7 +420,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // temporarily add a ColorStop entry
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // outer loop over ColorStops, each is from cs_l to cs_r
@@ -461,7 +461,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
@@ -523,7 +523,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // temporarily add a ColorStop entry
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // prepare vars dependent on aspect ratio
@@ -571,7 +571,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
@@ -633,7 +633,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // temporarily add a ColorStop entry
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // outer loop over ColorStops, each is from cs_l to cs_r
@@ -674,7 +674,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
@@ -736,7 +736,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // temporarily add a ColorStop entry
-                mnColorStops.emplace_back(1.0, 
mnColorStops.back().getStopColor());
+                mnColorStops.addStop(1.0, mnColorStops.back().getStopColor());
             }
 
             // prepare vars dependent on aspect ratio
@@ -784,7 +784,7 @@ namespace drawinglayer::texture
             if (bPenultimateUsed)
             {
                 // correct temporary change
-                mnColorStops.pop_back();
+                mnColorStops.removeLastStop();
             }
         }
 
diff --git a/drawinglayer/source/tools/primitive2dxmldump.cxx 
b/drawinglayer/source/tools/primitive2dxmldump.cxx
index b36116625bdb..641a9cd71f23 100644
--- a/drawinglayer/source/tools/primitive2dxmldump.cxx
+++ b/drawinglayer/source/tools/primitive2dxmldump.cxx
@@ -312,15 +312,14 @@ void writeSdrFillAttribute(::tools::XmlWriter& rWriter,
         for (size_t a(0); a < rColorStops.size(); a++)
         {
             if (0 == a)
-                rWriter.attribute("startColor",
-                                  
convertColorToString(rColorStops[a].getStopColor()));
+                rWriter.attribute("startColor", 
convertColorToString(rColorStops.getStopColor(a)));
             else if (rColorStops.size() == a + 1)
-                rWriter.attribute("endColor", 
convertColorToString(rColorStops[a].getStopColor()));
+                rWriter.attribute("endColor", 
convertColorToString(rColorStops.getStopColor(a)));
             else
             {
                 rWriter.startElement("colorStop");
-                rWriter.attribute("stopOffset", 
rColorStops[a].getStopOffset());
-                rWriter.attribute("stopColor", 
convertColorToString(rColorStops[a].getStopColor()));
+                rWriter.attribute("stopOffset", rColorStops.getStopOffset(a));
+                rWriter.attribute("stopColor", 
convertColorToString(rColorStops.getStopColor(a)));
                 rWriter.endElement();
             }
         }
diff --git a/filter/source/svg/svgwriter.cxx b/filter/source/svg/svgwriter.cxx
index 65e1a38e842f..196e9a0455a0 100644
--- a/filter/source/svg/svgwriter.cxx
+++ b/filter/source/svg/svgwriter.cxx
@@ -2433,8 +2433,8 @@ void SVGActionWriter::ImplWriteGradientLinear( const 
tools::PolyPolygon& rPolyPo
             else
             {
                 // else create color stops with 'old' start/endColor
-                aColorStops.emplace_back(0.0, 
rGradient.GetStartColor().getBColor());
-                aColorStops.emplace_back(1.0, 
rGradient.GetEndColor().getBColor());
+                aColorStops.addStop(0.0, 
rGradient.GetStartColor().getBColor());
+                aColorStops.addStop(1.0, rGradient.GetEndColor().getBColor());
             }
 
             // create a basegfx::BGradient with the info to be able to directly
@@ -3503,7 +3503,7 @@ void SVGActionWriter::ImplWriteActions( const 
GDIMetaFile& rMtf,
                             aMemStm.ReadDouble(fG);
                             aMemStm.ReadDouble(fB);
 
-                            aColorStops.emplace_back(fOff, basegfx::BColor(fR, 
fG, fB));
+                            aColorStops.addStop(fOff, basegfx::BColor(fR, fG, 
fB));
                         }
 
                         // export with real Color Stops
diff --git a/include/basegfx/utils/bgradient.hxx 
b/include/basegfx/utils/bgradient.hxx
index 2ac8eba41d61..2bafcc7f9fc1 100644
--- a/include/basegfx/utils/bgradient.hxx
+++ b/include/basegfx/utils/bgradient.hxx
@@ -96,27 +96,29 @@ public:
         is read-only, this can/will be guaranteed by forcing/checking this
         in the constructor, see ::FillGradientAttribute
     */
-class BASEGFX_DLLPUBLIC BColorStops final : public std::vector<BColorStop>
+class BASEGFX_DLLPUBLIC BColorStops final
 {
+private:
+    std::vector<BColorStop> maStops;
+
 public:
-    explicit BColorStops()
-        : vector()
-    {
-    }
-    BColorStops(const BColorStops& other)
-        : vector(other)
+    typedef typename std::vector<BColorStop>::size_type size_type;
+    typedef typename std::vector<BColorStop>::iterator iterator;
+    typedef typename std::vector<BColorStop>::const_iterator const_iterator;
+    typedef typename std::vector<BColorStop>::const_reverse_iterator 
const_reverse_iterator;
+
+    explicit BColorStops() {}
+
+    BColorStops(const BColorStops& rOther)
+        : maStops(rOther.maStops)
     {
     }
-    BColorStops(BColorStops&& other) noexcept
-        : vector(std::move(other))
+    BColorStops(BColorStops&& rOther) noexcept
+        : maStops(std::move(rOther.maStops))
     {
     }
     BColorStops(std::initializer_list<BColorStop> init)
-        : vector(init)
-    {
-    }
-    BColorStops(const_iterator first, const_iterator last)
-        : vector(first, last)
+        : maStops(init)
     {
     }
 
@@ -124,17 +126,43 @@ public:
     // BColorStops for StartColor @0.0 & EndColor @1.0
     BColorStops(const BColor& rStart, const BColor& rEnd);
 
-    BColorStops& operator=(const BColorStops& r)
+    BColorStops& operator=(const BColorStops& rOther)
     {
-        vector::operator=(r);
+        maStops = rOther.maStops;
         return *this;
     }
-    BColorStops& operator=(BColorStops&& r) noexcept
+    BColorStops& operator=(BColorStops&& rOther) noexcept
     {
-        vector::operator=(std::move(r));
+        maStops = std::move(rOther.maStops);
         return *this;
     }
 
+    void addStop(double fOffset, BColor aColor) { 
maStops.emplace_back(fOffset, aColor); }
+
+    void addStop(BColorStop const& aColorStop) { 
maStops.push_back(aColorStop); }
+
+    BColorStop const& getStop(size_t i) const { return maStops[i]; }
+    double getStopOffset(size_t i) const { return maStops[i].getStopOffset(); }
+    BColor const& getStopColor(size_t i) const { return 
maStops[i].getStopColor(); }
+
+    void removeLastStop() { return maStops.pop_back(); }
+
+    void reserve(size_t nNumber) { maStops.reserve(nNumber); }
+    void clear() { maStops.clear(); }
+    bool empty() const { return maStops.empty(); }
+    size_type size() const { return maStops.size(); }
+    iterator begin() { return maStops.begin(); }
+    iterator end() { return maStops.end(); }
+    const_iterator begin() const { return maStops.begin(); }
+    const_iterator end() const { return maStops.end(); }
+    const_reverse_iterator rbegin() const { return maStops.rbegin(); }
+    const_reverse_iterator rend() const { return maStops.rend(); }
+    const BColorStop& front() const { return maStops.front(); }
+    const BColorStop& back() const { return maStops.back(); }
+    BColorStop& front() { return maStops.front(); }
+    BColorStop& back() { return maStops.back(); }
+    bool operator==(BColorStops const& rOther) const { return maStops == 
rOther.maStops; }
+
     // helper data struct to support buffering entries in
     // gradient texture mapping, see usages for more info
     struct BColorStopRange
diff --git a/oox/qa/unit/drawingml.cxx b/oox/qa/unit/drawingml.cxx
index 81cd41de8048..b12922532d3d 100644
--- a/oox/qa/unit/drawingml.cxx
+++ b/oox/qa/unit/drawingml.cxx
@@ -199,16 +199,16 @@ CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, 
testGradientMultiStepTransparency)
         = model::gradient::getColorStopsFromUno(aTransparence.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(5), aColorStops.size());
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.00, aColorStops[0].getStopOffset(), 1E-3);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.19, aColorStops[1].getStopOffset(), 1E-3);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.35, aColorStops[2].getStopOffset(), 1E-3);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.58, aColorStops[3].getStopOffset(), 1E-3);
-    CPPUNIT_ASSERT_DOUBLES_EQUAL(1.00, aColorStops[4].getStopOffset(), 1E-3);
-    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT_EQUAL(Color(0x9e9e9e), 
Color(aColorStops[1].getStopColor()));
-    CPPUNIT_ASSERT_EQUAL(Color(0x363636), 
Color(aColorStops[2].getStopColor()));
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[3].getStopColor()));
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[4].getStopColor()));
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.00, aColorStops.getStopOffset(0), 1E-3);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.19, aColorStops.getStopOffset(1), 1E-3);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.35, aColorStops.getStopOffset(2), 1E-3);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(0.58, aColorStops.getStopOffset(3), 1E-3);
+    CPPUNIT_ASSERT_DOUBLES_EQUAL(1.00, aColorStops.getStopOffset(4), 1E-3);
+    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT_EQUAL(Color(0x9e9e9e), Color(aColorStops.getStopColor(1)));
+    CPPUNIT_ASSERT_EQUAL(Color(0x363636), Color(aColorStops.getStopColor(2)));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(3)));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(4)));
 }
 
 CPPUNIT_TEST_FIXTURE(OoxDrawingmlTest, testShapeTextAlignment)
diff --git a/oox/qa/unit/shape.cxx b/oox/qa/unit/shape.cxx
index 13bc7a1a086e..fd1ac1faca0b 100644
--- a/oox/qa/unit/shape.cxx
+++ b/oox/qa/unit/shape.cxx
@@ -656,10 +656,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(sal_Int16(690), aGradient.Angle);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(0), aGradient.XOffset);
@@ -680,10 +680,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[0].getStopOffset(), 
0.40000000000000002));
-        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(0), 
0.40000000000000002));
+        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(sal_Int16(900), aGradient.Angle);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset);
@@ -704,10 +704,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, testWriterFontwork3)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xf79646), 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(sal_Int16(900), aGradient.Angle);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset);
@@ -828,10 +828,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testImportWordArtGradient)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0xffc000), 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0xc00000), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xffc000), 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xc00000), 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aGradient.Style);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(690), aGradient.Angle);
@@ -860,10 +860,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testImportWordArtGradient)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0x0083e0), 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0xe6e600), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0x0083e0), 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xe6e600), 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RADIAL, aGradient.Style);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset);
@@ -875,10 +875,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testImportWordArtGradient)
 
         // Transparency is encoded in gray color.
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0x4d4d4d), 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RADIAL, aGradient.Style);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(50), aGradient.XOffset);
@@ -912,10 +912,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testImportWordArtGradient)
         aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), 
Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0x4472c4), 
Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RECT, aGradient.Style);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset);
@@ -927,10 +927,10 @@ CPPUNIT_TEST_FIXTURE(OoxShapeTest, 
testImportWordArtGradient)
 
         // Transparency is encoded in gray color.
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(1)));
 
         CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_RECT, aGradient.Style);
         CPPUNIT_ASSERT_EQUAL(sal_Int16(100), aGradient.XOffset);
diff --git a/oox/source/drawingml/fillproperties.cxx 
b/oox/source/drawingml/fillproperties.cxx
index 076910558c5e..065c616911d3 100644
--- a/oox/source/drawingml/fillproperties.cxx
+++ b/oox/source/drawingml/fillproperties.cxx
@@ -477,7 +477,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& 
rPropMap, const GraphicHelp
                 for (const auto& rCandidate : maGradientProps.maGradientStops)
                 {
                     const ::Color 
aColor(rCandidate.second.getColor(rGraphicHelper, nPhClr));
-                    aColorStops.emplace_back(rCandidate.first, 
aColor.getBColor());
+                    aColorStops.addStop(rCandidate.first, aColor.getBColor());
                     bContainsTransparency = bContainsTransparency || 
rCandidate.second.hasTransparency();
                 }
 
@@ -487,7 +487,7 @@ void FillProperties::pushToPropMap(ShapePropertyMap& 
rPropMap, const GraphicHelp
                     for (const auto& rCandidate : 
maGradientProps.maGradientStops)
                     {
                         const double 
fTrans(rCandidate.second.getTransparency() * (1.0/100.0));
-                        aTransparencyStops.emplace_back(rCandidate.first, 
basegfx::BColor(fTrans, fTrans, fTrans));
+                        aTransparencyStops.addStop(rCandidate.first, 
basegfx::BColor(fTrans, fTrans, fTrans));
                     }
                 }
 
diff --git a/sc/qa/unit/subsequent_filters_test3.cxx 
b/sc/qa/unit/subsequent_filters_test3.cxx
index 11aaaae11bb7..4d26116f4c0a 100644
--- a/sc/qa/unit/subsequent_filters_test3.cxx
+++ b/sc/qa/unit/subsequent_filters_test3.cxx
@@ -1903,10 +1903,10 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest3, testTdf129789)
         const basegfx::BColorStops& 
rColorStops(rGradientItem.GetGradientValue().GetColorStops());
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, rColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), 
Color(rColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), 
Color(rColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, rColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), 
Color(rColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), 
Color(rColorStops.getStopColor(1)));
 
         SdrCaptionObj* const pCaptionH9 = checkCaption(*pDoc, ScAddress(7, 8, 
0), false);
 
@@ -1917,10 +1917,10 @@ CPPUNIT_TEST_FIXTURE(ScFiltersTest3, testTdf129789)
         const basegfx::BColorStops& 
rColorStops2(rGradientItem2.GetGradientValue().GetColorStops());
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops2.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, rColorStops2[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), 
Color(rColorStops2[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops2[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), 
Color(rColorStops2[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, rColorStops2.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xdde8cb), 
Color(rColorStops2.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops2.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0xffd7d7), 
Color(rColorStops2.getStopColor(1)));
     }
 
     {
diff --git a/sd/qa/unit/export-tests-ooxml1.cxx 
b/sd/qa/unit/export-tests-ooxml1.cxx
index 4d6ff232b5f7..a95647297378 100644
--- a/sd/qa/unit/export-tests-ooxml1.cxx
+++ b/sd/qa/unit/export-tests-ooxml1.cxx
@@ -1264,12 +1264,12 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testTdf94238)
     // 'Expected: 0, Actual  : 10592673', i.e. the start color of the gradient
     // was incorrect.
     CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
0.39000000000000001));
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(Color(0x8b8b8b), 
Color(aColorStops[2].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
0.39000000000000001));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 1.0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x8b8b8b), Color(aColorStops.getStopColor(2)));
 }
 
 CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, testPictureTransparency)
@@ -1523,12 +1523,12 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest1, 
testTdf128345GradientAxial)
         = 
model::gradient::getColorStopsFromUno(aTransparenceGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(3), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
0.5));
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[2].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[2].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 0.5));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(2), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(2)));
     CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, 
aTransparenceGradient.Style);
 }
 
diff --git a/sd/qa/unit/export-tests-ooxml2.cxx 
b/sd/qa/unit/export-tests-ooxml2.cxx
index 9678eabb27ee..d009c43cde0f 100644
--- a/sd/qa/unit/export-tests-ooxml2.cxx
+++ b/sd/qa/unit/export-tests-ooxml2.cxx
@@ -1021,10 +1021,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf105739)
             = model::gradient::getColorStopsFromUno(aFillGradient.ColorStops);
 
         CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-        CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, 
Color(aColorStops[0].getStopColor()));
-        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-        CPPUNIT_ASSERT_EQUAL(Color(0x00b050), 
Color(aColorStops[1].getStopColor()));
+        CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+        CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0)));
+        CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 
1.0));
+        CPPUNIT_ASSERT_EQUAL(Color(0x00b050), 
Color(aColorStops.getStopColor(1)));
         CPPUNIT_ASSERT_EQUAL(int(awt::GradientStyle_LINEAR), 
static_cast<int>(aFillGradient.Style));
     }
 }
diff --git a/sd/qa/unit/export-tests-ooxml4.cxx 
b/sd/qa/unit/export-tests-ooxml4.cxx
index 99c8b1fcb3c4..cb79b15a30b3 100644
--- a/sd/qa/unit/export-tests-ooxml4.cxx
+++ b/sd/qa/unit/export-tests-ooxml4.cxx
@@ -382,10 +382,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127372)
         = 
model::gradient::getColorStopsFromUno(aTransparenceGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(1)));
 }
 
 CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127379)
@@ -415,10 +415,10 @@ CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf127379)
         = model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(Color(0x2a6099), 
Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x2a6099), Color(aColorStops.getStopColor(1)));
 }
 
 CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest4, testTdf98603)
diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx
index df5ba7d5940f..bcfbb55677a0 100644
--- a/sd/qa/unit/misc-tests.cxx
+++ b/sd/qa/unit/misc-tests.cxx
@@ -368,10 +368,10 @@ void SdMiscTest::testFillGradient()
         = model::gradient::getColorStopsFromUno(aGradient2.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_LIGHTGREEN, Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_LIGHTGREEN, Color(aColorStops.getStopColor(1)));
 }
 
 void SdMiscTest::testTdf44774()
diff --git a/sd/qa/unit/uiimpress.cxx b/sd/qa/unit/uiimpress.cxx
index 4518a01bffd8..98b1cdb01974 100644
--- a/sd/qa/unit/uiimpress.cxx
+++ b/sd/qa/unit/uiimpress.cxx
@@ -1633,10 +1633,10 @@ CPPUNIT_TEST_FIXTURE(SdUiImpressTest, 
testPageFillGradient)
     const basegfx::BColorStops& rColorStops(aGradient.GetColorStops());
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), rColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, rColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(rColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(rColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, rColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_LIGHTRED, Color(rColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(rColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_LIGHTBLUE, Color(rColorStops.getStopColor(1)));
 }
 
 CPPUNIT_TEST_FIXTURE(SdUiImpressTest, testTdf134053)
diff --git a/sd/source/ui/sidebar/SlideBackground.cxx 
b/sd/source/ui/sidebar/SlideBackground.cxx
index 98b7de0efcf3..ed852ec22b20 100644
--- a/sd/source/ui/sidebar/SlideBackground.cxx
+++ b/sd/source/ui/sidebar/SlideBackground.cxx
@@ -1301,8 +1301,8 @@ basegfx::BColorStops SlideBackground::createColorStops()
     }
     else
     {
-        aColorStops.emplace_back(0.0, 
mxFillGrad1->GetSelectEntryColor().getBColor());
-        aColorStops.emplace_back(1.0, 
mxFillGrad2->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(0.0, 
mxFillGrad1->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(1.0, 
mxFillGrad2->GetSelectEntryColor().getBColor());
     }
 
     return aColorStops;
diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx 
b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
index b86c3f1d60fc..373ad4b20397 100644
--- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
+++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
@@ -1377,15 +1377,13 @@ basegfx::BColorStops 
AreaPropertyPanelBase::createColorStops()
     if (maColorStops.size() >= 2)
     {
         aColorStops = maColorStops;
-        aColorStops.front() = 
basegfx::BColorStop(maColorStops.front().getStopOffset(),
-                                                  
mxLbFillGradFrom->GetSelectEntryColor().getBColor());
-        aColorStops.back() = 
basegfx::BColorStop(maColorStops.back().getStopOffset(),
-                                                 
mxLbFillGradTo->GetSelectEntryColor().getBColor());
+        aColorStops.front() = 
basegfx::BColorStop(maColorStops.front().getStopOffset(), 
mxLbFillGradFrom->GetSelectEntryColor().getBColor());
+        aColorStops.back() = 
basegfx::BColorStop(maColorStops.back().getStopOffset(), 
mxLbFillGradTo->GetSelectEntryColor().getBColor());
     }
     else
     {
-        aColorStops.emplace_back(0.0, 
mxLbFillGradFrom->GetSelectEntryColor().getBColor());
-        aColorStops.emplace_back(1.0, 
mxLbFillGradTo->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(0.0, 
mxLbFillGradFrom->GetSelectEntryColor().getBColor());
+        aColorStops.addStop(1.0, 
mxLbFillGradTo->GetSelectEntryColor().getBColor());
     }
 
     return aColorStops;
diff --git a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx 
b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
index 4b5ed0eda076..d734d1062850 100644
--- a/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
+++ b/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx
@@ -142,13 +142,13 @@ void AreaTransparencyGradientPopup::ExecuteValueModify()
     if (maColorStops.size() >= 2)
     {
         aColorStops = maColorStops;
-        aColorStops.front() = 
basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor);
+        aColorStops.front()  = 
basegfx::BColorStop(maColorStops.front().getStopOffset(), aStartBColor);
         aColorStops.back() = 
basegfx::BColorStop(maColorStops.back().getStopOffset(), aEndBColor);
     }
     else
     {
-        aColorStops.emplace_back(0.0, aStartBColor);
-        aColorStops.emplace_back(1.0, aEndBColor);
+        aColorStops.addStop(0.0, aStartBColor);
+        aColorStops.addStop(1.0, aEndBColor);
     }
 
     basegfx::BGradient aTmpGradient(
diff --git a/sw/qa/extras/odfexport/odfexport.cxx 
b/sw/qa/extras/odfexport/odfexport.cxx
index bbfbd3e1b505..196984dadded 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -797,10 +797,10 @@ DECLARE_ODFEXPORT_TEST(testTextframeGradient, 
"textframe-gradient.odt")
     basegfx::BColorStops aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(Color(0xc0504d), 
Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(Color(0xd99594), 
Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(Color(0xc0504d), Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(Color(0xd99594), Color(aColorStops.getStopColor(1)));
     CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aGradient.Style);
 
     xFrame.set(xIndexAccess->getByIndex(1), uno::UNO_QUERY);
@@ -811,10 +811,10 @@ DECLARE_ODFEXPORT_TEST(testTextframeGradient, 
"textframe-gradient.odt")
     aColorStops = model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(COL_BLACK, Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_GRAY7, Color(aColorStops.getStopColor(1)));
     CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_AXIAL, aGradient.Style);
 }
 
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx 
b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
index 936c07ef350f..40c304414c43 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport7.cxx
@@ -656,10 +656,10 @@ DECLARE_OOXMLEXPORT_TEST(testTdf77219_backgroundShape, 
"tdf77219_backgroundShape
     basegfx::BColorStops aColorStops = 
model::gradient::getColorStopsFromUno(aGradient.ColorStops);
 
     CPPUNIT_ASSERT_EQUAL(size_t(2), aColorStops.size());
-    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops[0].getStopOffset());
-    CPPUNIT_ASSERT_EQUAL(Color(0x5f497a), 
Color(aColorStops[0].getStopColor()));
-    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops[1].getStopOffset(), 
1.0));
-    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops[1].getStopColor()));
+    CPPUNIT_ASSERT_EQUAL(0.0, aColorStops.getStopOffset(0));
+    CPPUNIT_ASSERT_EQUAL(Color(0x5f497a), Color(aColorStops.getStopColor(0)));
+    CPPUNIT_ASSERT(basegfx::fTools::equal(aColorStops.getStopOffset(1), 1.0));
+    CPPUNIT_ASSERT_EQUAL(COL_WHITE, Color(aColorStops.getStopColor(1)));
     CPPUNIT_ASSERT_EQUAL(awt::GradientStyle_LINEAR, aGradient.Style);
     // without the fix, this was 1350 (visually the colors were reversed)
     CPPUNIT_ASSERT_EQUAL(sal_Int16(3150), aGradient.Angle);
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index aef4f081ca8f..45c30e3a3ac1 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -4197,7 +4197,7 @@ void RtfAttributeOutput::FormatFillGradient(const 
XFillGradientItem& rFillGradie
         // assume what was formally GradientStyle_AXIAL, see above and also 
refer to
         // FillModel::pushToPropMap 'fFocus' value and usage.
         // The 2nd color is the in-between color, use it
-        aMSOEndColor = Color(rColorStops[1].getStopColor());
+        aMSOEndColor = Color(rColorStops.getStopColor(1));
     }
 
     m_aFlyProperties.push_back(std::make_pair<OString, OString>(
diff --git a/vcl/source/filter/svm/SvmReader.cxx 
b/vcl/source/filter/svm/SvmReader.cxx
index 96239da18cbc..cf1ca8491629 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -1158,7 +1158,7 @@ rtl::Reference<MetaAction> 
SvmReader::FloatTransparentHandler(ImplMetaReadData*
             mrStream.ReadDouble(fG);
             mrStream.ReadDouble(fB);
 
-            aColorStops.emplace_back(fOff, basegfx::BColor(fR, fG, fB));
+            aColorStops.addStop(fOff, basegfx::BColor(fR, fG, fB));
         }
     }
 

Reply via email to