Attempt to make it more clear what FloatIntervalSearchAdaptor::collectIfNeeded is...
authorbjonesbe@adobe.com <bjonesbe@adobe.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Aug 2013 16:58:18 +0000 (16:58 +0000)
committerbjonesbe@adobe.com <bjonesbe@adobe.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 23 Aug 2013 16:58:18 +0000 (16:58 +0000)
commit3428fe98552b569f3cba4574d428b048e8954c3f
treef4f00af4d1f649c9345aa2ddeda8977c5f4fafdc
parent16b99e01f3e3e034a33c3b88a1330d92536508b3
Attempt to make it more clear what FloatIntervalSearchAdaptor::collectIfNeeded is doing
https://bugs.webkit.org/show_bug.cgi?id=119816

Reviewed by David Hyatt.

This is a port from Blink of
https://src.chromium.org/viewvc/blink?revision=155885&view=revision
Original Patch by Eric Seidel

Original comments:

"It seemed to me that template specifications would be clearer than an
if.  They also allow for compile-time error checking were a 3rd type
of float to come into existance in CSS4. :p

For any unfamiliar with this method, this the object used for
performing a search on a RedBlackTree in WTF.

We create one of these adaptors, specifying that we want to search for
values in a specific (logical) Y interval, and this adaptor is called
back for any values in the RBTree cooresponding to that interval
range.

The job of this adaptor is to collect the various values we care
about, including the left or right-most offset of the floats in that
Y-range as well as what the last (document order) float seen in that
range.

It also collects the remaining available height for the block but I'm
less clear on how that parameter is used."

Note that in addition to the original change, I have made the
updateOffsetIfNeeded and rangesIntersect methods inline, as this was
shown to be a performance win in
https://src.chromium.org/viewvc/blink?revision=156064&view=revision
and it seemed a rather trivial change to be subject to a separate
patch when porting.

No new tests, no behavior change.

* rendering/RenderBlock.cpp:
(WebCore::::updateOffsetIfNeeded):
(WebCore::::collectIfNeeded):
* rendering/RenderBlock.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderBlock.cpp
Source/WebCore/rendering/RenderBlock.h