Title: [132545] trunk/Source/WebCore
Revision
132545
Author
m...@apple.com
Date
2012-10-25 17:04:53 -0700 (Thu, 25 Oct 2012)

Log Message

<rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
https://bugs.webkit.org/show_bug.cgi?id=100413

Reviewed by Anders Carlsson.

RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
Sped up the Core Graphics implementation of this function considerably by removing an
unnecessary call to CGContextGetClipBoundingBox.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
box of the current clip.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (132544 => 132545)


--- trunk/Source/WebCore/ChangeLog	2012-10-25 23:32:09 UTC (rev 132544)
+++ trunk/Source/WebCore/ChangeLog	2012-10-26 00:04:53 UTC (rev 132545)
@@ -1,3 +1,18 @@
+2012-10-25  Dan Bernstein  <m...@apple.com>
+
+        <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
+        https://bugs.webkit.org/show_bug.cgi?id=100413
+
+        Reviewed by Anders Carlsson.
+
+        RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
+        Sped up the Core Graphics implementation of this function considerably by removing an
+        unnecessary call to CGContextGetClipBoundingBox.
+
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
+        box of the current clip.
+
 2012-10-25  Tim Horton  <timothy_hor...@apple.com>
 
         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls

Modified: trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp (132544 => 132545)


--- trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2012-10-25 23:32:09 UTC (rev 132544)
+++ trunk/Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp	2012-10-26 00:04:53 UTC (rev 132545)
@@ -1057,7 +1057,7 @@
     if (paintingDisabled())
         return;
 
-    CGRect rects[2] = { CGContextGetClipBoundingBox(platformContext()), rect };
+    CGRect rects[2] = { CGRectInfinite, rect };
     CGContextBeginPath(platformContext());
     CGContextAddRects(platformContext(), rects, 2);
     CGContextEOClip(platformContext());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to