Modified: trunk/Source/WebCore/ChangeLog (136287 => 136288)
--- trunk/Source/WebCore/ChangeLog 2012-11-30 23:21:48 UTC (rev 136287)
+++ trunk/Source/WebCore/ChangeLog 2012-11-30 23:21:59 UTC (rev 136288)
@@ -1,3 +1,27 @@
+2012-11-29 Ilya Tikhonovsky <[email protected]>
+
+ RenderBlock minor clean-up: replace raw pointers with OwnPtrs.
+ https://bugs.webkit.org/show_bug.cgi?id=103690
+
+ Reviewed by Eric Seidel.
+
+ raw pointers were replaced with OwnPtrs.
+ Probably we also gain a small performance improvements because
+ I replaced get && remove pair with take.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore):
+ (WebCore::removeBlockFromDescendantAndContainerMaps):
+ (WebCore::RenderBlock::~RenderBlock):
+ (WebCore::RenderBlock::addOverflowFromFloats):
+ (WebCore::RenderBlock::addContinuationWithOutline):
+ (WebCore::RenderBlock::paintContinuationOutlines):
+ (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
+ (WebCore::RenderBlock::removeFromTrackedRendererMaps):
+ (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
+ * rendering/RenderBlock.h:
+ (WebCore):
+
2012-11-30 Jun Jiang <[email protected]>
WebGL: Add a class to abstract the status of the Image in texImage2D() and texSubImage2D()
Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (136287 => 136288)
--- trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-11-30 23:21:48 UTC (rev 136287)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp 2012-11-30 23:21:59 UTC (rev 136288)
@@ -97,7 +97,7 @@
LayoutUnit margins[2];
};
-typedef WTF::HashMap<const RenderBox*, ColumnInfo*> ColumnInfoMap;
+typedef WTF::HashMap<const RenderBox*, OwnPtr<ColumnInfo> > ColumnInfoMap;
static ColumnInfoMap* gColumnInfoMap = 0;
static TrackedDescendantsMap* gPositionedDescendantsMap = 0;
@@ -106,7 +106,7 @@
static TrackedContainerMap* gPositionedContainerMap = 0;
static TrackedContainerMap* gPercentHeightContainerMap = 0;
-typedef WTF::HashMap<RenderBlock*, ListHashSet<RenderInline*>*> ContinuationOutlineTableMap;
+typedef WTF::HashMap<RenderBlock*, OwnPtr<ListHashSet<RenderInline*> > > ContinuationOutlineTableMap;
typedef WTF::HashSet<RenderBlock*> DelayedUpdateScrollInfoSet;
static int gDelayUpdateScrollInfo = 0;
@@ -200,21 +200,19 @@
static void removeBlockFromDescendantAndContainerMaps(RenderBlock* block, TrackedDescendantsMap*& descendantMap, TrackedContainerMap*& containerMap)
{
- if (TrackedRendererListHashSet* descendantSet = descendantMap->take(block)) {
+ if (OwnPtr<TrackedRendererListHashSet> descendantSet = descendantMap->take(block)) {
TrackedRendererListHashSet::iterator end = descendantSet->end();
for (TrackedRendererListHashSet::iterator descendant = descendantSet->begin(); descendant != end; ++descendant) {
- HashSet<RenderBlock*>* containerSet = containerMap->get(*descendant);
- ASSERT(containerSet);
- if (!containerSet)
+ TrackedContainerMap::iterator it = containerMap->find(*descendant);
+ ASSERT(it != containerMap->end());
+ if (it == containerMap->end())
continue;
+ HashSet<RenderBlock*>* containerSet = it->value.get();
ASSERT(containerSet->contains(block));
containerSet->remove(block);
- if (containerSet->isEmpty()) {
- containerMap->remove(*descendant);
- delete containerSet;
- }
+ if (containerSet->isEmpty())
+ containerMap->remove(it);
}
- delete descendantSet;
}
}
@@ -224,7 +222,7 @@
deleteAllValues(m_floatingObjects->set());
if (hasColumns())
- delete gColumnInfoMap->take(this);
+ gColumnInfoMap->take(this);
if (gPercentHeightDescendantsMap)
removeBlockFromDescendantAndContainerMaps(this, gPercentHeightDescendantsMap, gPercentHeightContainerMap);
@@ -1731,7 +1729,6 @@
if (r->isDescendant())
addOverflowFromChild(r->m_renderer, IntSize(xPositionForFloatIncludingMargin(r), yPositionForFloatIncludingMargin(r)));
}
- return;
}
void RenderBlock::addOverflowFromPositionedObjects()
@@ -3183,7 +3180,7 @@
ListHashSet<RenderInline*>* continuations = table->get(this);
if (!continuations) {
continuations = new ListHashSet<RenderInline*>;
- table->set(this, continuations);
+ table->set(this, adoptPtr(continuations));
}
continuations->add(flow);
@@ -3208,7 +3205,7 @@
if (table->isEmpty())
return;
- ListHashSet<RenderInline*>* continuations = table->get(this);
+ OwnPtr<ListHashSet<RenderInline*> > continuations = table->take(this);
if (!continuations)
return;
@@ -3224,10 +3221,6 @@
ASSERT(block);
flow->paintOutline(info.context, accumulatedPaintOffset);
}
-
- // Delete
- delete continuations;
- table->remove(this);
}
bool RenderBlock::shouldPaintSelectionGaps() const
@@ -3655,7 +3648,7 @@
TrackedRendererListHashSet* descendantSet = descendantsMap->get(this);
if (!descendantSet) {
descendantSet = new TrackedRendererListHashSet;
- descendantsMap->set(this, descendantSet);
+ descendantsMap->set(this, adoptPtr(descendantSet));
}
bool added = descendantSet->add(descendant).isNewEntry;
if (!added) {
@@ -3667,7 +3660,7 @@
HashSet<RenderBlock*>* containerSet = containerMap->get(descendant);
if (!containerSet) {
containerSet = new HashSet<RenderBlock*>;
- containerMap->set(descendant, containerSet);
+ containerMap->set(descendant, adoptPtr(containerSet));
}
ASSERT(!containerSet->contains(this));
containerSet->add(this);
@@ -3678,7 +3671,7 @@
if (!descendantsMap)
return;
- HashSet<RenderBlock*>* containerSet = containerMap->take(descendant);
+ OwnPtr<HashSet<RenderBlock*> > containerSet = containerMap->take(descendant);
if (!containerSet)
return;
@@ -3691,19 +3684,16 @@
// their ancestor chain before being moved. See webkit bug 93766.
// ASSERT(descendant->isDescendantOf(container));
- TrackedRendererListHashSet* descendantSet = descendantsMap->get(container);
- ASSERT(descendantSet);
- if (!descendantSet)
+ TrackedDescendantsMap::iterator descendantsMapIterator = descendantsMap->find(container);
+ ASSERT(descendantsMapIterator != descendantsMap->end());
+ if (descendantsMapIterator == descendantsMap->end())
continue;
+ TrackedRendererListHashSet* descendantSet = descendantsMapIterator->value.get();
ASSERT(descendantSet->contains(descendant));
descendantSet->remove(descendant);
- if (descendantSet->isEmpty()) {
- descendantsMap->remove(container);
- delete descendantSet;
- }
+ if (descendantSet->isEmpty())
+ descendantsMap->remove(descendantsMapIterator);
}
-
- delete containerSet;
}
TrackedRendererListHashSet* RenderBlock::positionedObjects() const
@@ -5221,7 +5211,7 @@
bool destroyColumns = !requiresColumns(count);
if (destroyColumns) {
if (hasColumns()) {
- delete gColumnInfoMap->take(this);
+ gColumnInfoMap->take(this);
setHasColumns(false);
}
} else {
@@ -5232,7 +5222,7 @@
if (!gColumnInfoMap)
gColumnInfoMap = new ColumnInfoMap;
info = new ColumnInfo;
- gColumnInfoMap->add(this, info);
+ gColumnInfoMap->add(this, adoptPtr(info));
setHasColumns(true);
}
info->setDesiredColumnCount(count);
Modified: trunk/Source/WebCore/rendering/RenderBlock.h (136287 => 136288)
--- trunk/Source/WebCore/rendering/RenderBlock.h 2012-11-30 23:21:48 UTC (rev 136287)
+++ trunk/Source/WebCore/rendering/RenderBlock.h 2012-11-30 23:21:59 UTC (rev 136288)
@@ -62,8 +62,8 @@
typedef BidiResolver<InlineIterator, BidiRun> InlineBidiResolver;
typedef MidpointState<InlineIterator> LineMidpointState;
typedef WTF::ListHashSet<RenderBox*, 16> TrackedRendererListHashSet;
-typedef WTF::HashMap<const RenderBlock*, TrackedRendererListHashSet*> TrackedDescendantsMap;
-typedef WTF::HashMap<const RenderBox*, HashSet<RenderBlock*>*> TrackedContainerMap;
+typedef WTF::HashMap<const RenderBlock*, OwnPtr<TrackedRendererListHashSet> > TrackedDescendantsMap;
+typedef WTF::HashMap<const RenderBox*, OwnPtr<HashSet<RenderBlock*> > > TrackedContainerMap;
typedef Vector<WordMeasurement, 64> WordMeasurements;
enum CaretType { CursorCaret, DragCaret };