Commit cd02553f authored by Boudewijn Rempt's avatar Boudewijn Rempt Committed by Wolthera van Hövell

Make KoStopGradient::colorAt threadsave

Sneakily, the "buffer" variable was made a class variable. Marking
it mutable allows us to change it from a const function, which hides
the fact that this is global data (doubly hidden by there not being
an m_ prefix), which makes the const function thread unsafe.
parent 904cc82d
......@@ -132,6 +132,8 @@ QGradient* KoStopGradient::toQGradient() const
void KoStopGradient::colorAt(KoColor& dst, qreal t) const
KoColor buffer;
if (! m_stops.count())
if (t <= m_stops.first().first || m_stops.count() == 1) {
......@@ -162,7 +164,7 @@ void KoStopGradient::colorAt(KoColor& dst, qreal t) const
const KoGradientStop& leftStop = *(stop - 1);
const KoGradientStop& rightStop = *(stop);
KoColor startDummy, endDummy;
if (mixSpace){
startDummy = KoColor(leftStop.second, mixSpace);
......@@ -54,7 +54,7 @@ public:
/// Creates KoStopGradient from a QGradient
static KoStopGradient * fromQGradient(QGradient * gradient);
/// Sets the gradient stops
void setStops(QList<KoGradientStop> stops);
QList<KoGradientStop> stops() const;
......@@ -69,10 +69,6 @@ protected:
QPointF m_stop;
QPointF m_focalPoint;
mutable KoColor buffer;
void loadKarbonGradient(QIODevice *file);
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment