Use unique_ptr instead of deleteAllValues in FloatingObject code
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Sep 2013 05:53:55 +0000 (05:53 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 24 Sep 2013 05:53:55 +0000 (05:53 +0000)
commitc30f627b7f153a89d49ca9af2464e66ad1c9e594
treeb0622bd85809aaa9359391c8c869d8f0318bec36
parent271cbaa69ffa1738593cd183fa079ddc0303afad
Use unique_ptr instead of deleteAllValues in FloatingObject code
https://bugs.webkit.org/show_bug.cgi?id=121823

Reviewed by Sam Weinig.

* rendering/FloatingObjects.cpp:
(WebCore::FloatingObject::create): Return a unique_ptr instead of PassOwnPtr.
Use auto and a word for the local variable instead of an abbreviation. Also
changed to take a reference instead of a pointer.
(WebCore::FloatingObject::copyToNewContainer): Ditto.
(WebCore::FloatingObject::unsafeClone): Ditto.
(WebCore::FloatingObjects::~FloatingObjects): Removed call to deleteAllValues.
(WebCore::FloatingObjects::clearLineBoxTreePointers): Use auto to make this
read clearly.
(WebCore::FloatingObjects::clear): Removed call to deleteAllValues.
(WebCore::FloatingObjects::moveAllToFloatInfoMap): Use std::move to move values
out of the set, into the map. Removed code to clear the set, since it was a
trick to prevent the values from being deleted when they were not moved.
(WebCore::FloatingObjects::add): Changed to take a unique_ptr and to move the
pointer into the set instead of using leakPtr.
(WebCore::FloatingObjects::remove): Rearranged code so that the remove is at
the end of the function rather than the beginning. Also had to use a hash
translator and a find/remove combo since we don't have hash translator version
of the remove function.
(WebCore::FloatingObjects::computePlacedFloatsTree): Updated for changes to
the types.
(WebCore::FloatingObjects::placedFloatsTree): Moved this function here instead
of having it in the header, since it's only used within the file.

* rendering/FloatingObjects.h: Changed functions to take references instead
of pointers and return unique_ptr instead of PassOwnPtr. Also made
constructors public so we can use them with make_unique. Changed types to
use unique_ptr instead of raw pointers, and made the FloatingObjectHashTranslator
work for both RenderBox& and FloatingObject&.

* rendering/LineWidth.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
Updated for changes to types.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::moveAllChildrenIncludingFloatsTo):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::repaintOverhangingFloats):
(WebCore::RenderBlock::paintFloats):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::removeFloatingObject):
(WebCore::RenderBlock::removeFloatingObjectsBelow):
(WebCore::RenderBlock::positionNewFloats):
(WebCore::RenderBlock::nextFloatLogicalBottomBelow):
(WebCore::RenderBlock::lowestFloatLogicalBottom):
(WebCore::RenderBlock::addOverhangingFloats):
(WebCore::RenderBlock::hasOverhangingFloat):
(WebCore::RenderBlock::addIntrudingFloats):
(WebCore::RenderBlock::containsFloat):
(WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
(WebCore::RenderBlock::updateLocalFloatingObjectsForPaintingContainer):
(WebCore::RenderBlock::hitTestFloats):
(WebCore::RenderBlock::adjustForBorderFit):
Updated for changes to types.

* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::clearFloats): Updated to use take instead of
a combination of remove and delete.

* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutRunsAndFloats):
(WebCore::RenderBlock::layoutRunsAndFloatsInRange):
(WebCore::RenderBlock::linkToEndLineIfNeeded):
(WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):
(WebCore::RenderBlock::positionNewFloatOnLine):
Updated for changes to types.

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