From 68513a70bcd92384395513322f1b801e7bf9c729 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 29 Sep 2010 17:32:26 +0100 Subject: Merge WebKit at r67908: Initial merge by Git Change-Id: I43a553e7b3299b28cb6ee8aa035ed70fe342b972 --- WebCore/platform/graphics/Gradient.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'WebCore/platform/graphics/Gradient.cpp') diff --git a/WebCore/platform/graphics/Gradient.cpp b/WebCore/platform/graphics/Gradient.cpp index 3d8dfc9..f9427fb 100644 --- a/WebCore/platform/graphics/Gradient.cpp +++ b/WebCore/platform/graphics/Gradient.cpp @@ -117,9 +117,16 @@ void Gradient::sortStopsIfNecessary() if (m_stopsSorted) return; - if (m_stops.size()) - std::stable_sort(m_stops.begin(), m_stops.end(), compareStops); m_stopsSorted = true; + + if (!m_stops.size()) + return; + + // Shortcut for the ideal case (ordered 2-stop gradient) + if (m_stops.size() == 2 && compareStops(*m_stops.begin(), *m_stops.end())) + return; + + std::stable_sort(m_stops.begin(), m_stops.end(), compareStops); } void Gradient::getColor(float value, float* r, float* g, float* b, float* a) const -- cgit v1.1