Index: Source/platform/graphics/Gradient.cpp |
diff --git a/Source/platform/graphics/Gradient.cpp b/Source/platform/graphics/Gradient.cpp |
index 0741e855616bb1f6e756c5c9ee32b8dd92351708..9c10bed4648e69caae3ca5535ff33b1bb2396249 100644 |
--- a/Source/platform/graphics/Gradient.cpp |
+++ b/Source/platform/graphics/Gradient.cpp |
@@ -68,27 +68,23 @@ Gradient::~Gradient() |
{ |
} |
-void Gradient::addColorStop(float value, const Color& color) |
+static inline bool compareStops(const Gradient::ColorStop& a, const Gradient::ColorStop& b) |
{ |
- m_stops.append(ColorStop(value, color)); |
- |
- m_stopsSorted = false; |
- m_gradient.clear(); |
+ return a.stop < b.stop; |
} |
void Gradient::addColorStop(const Gradient::ColorStop& stop) |
{ |
- m_stops.append(stop); |
+ if (m_stops.isEmpty()) { |
+ m_stopsSorted = true; |
+ } else { |
+ m_stopsSorted = m_stopsSorted && compareStops(m_stops.last(), stop); |
+ } |
- m_stopsSorted = false; |
+ m_stops.append(stop); |
m_gradient.clear(); |
} |
-static inline bool compareStops(const Gradient::ColorStop& a, const Gradient::ColorStop& b) |
-{ |
- return a.stop < b.stop; |
-} |
- |
void Gradient::sortStopsIfNecessary() |
{ |
if (m_stopsSorted) |