Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (135604 => 135605)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-11-23 14:22:55 UTC (rev 135604)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-11-23 14:55:46 UTC (rev 135605)
@@ -179,10 +179,6 @@
, m_next(0)
, m_first(0)
, m_last(0)
- , m_posZOrderList(0)
- , m_negZOrderList(0)
- , m_normalFlowList(0)
- , m_marquee(0)
, m_staticInlinePosition(0)
, m_staticBlockPosition(0)
, m_reflection(0)
@@ -245,11 +241,6 @@
// Child layers will be deleted by their corresponding render objects, so
// we don't need to delete them ourselves.
- delete m_posZOrderList;
- delete m_negZOrderList;
- delete m_normalFlowList;
- delete m_marquee;
-
#if USE(ACCELERATED_COMPOSITING)
clearBacking(true);
#endif
@@ -3421,7 +3412,7 @@
}
// Paint any child layers that have overflow.
- paintList(m_normalFlowList, context, localPaintingInfo, localPaintFlags);
+ paintList(m_normalFlowList.get(), context, localPaintingInfo, localPaintFlags);
// Now walk the sorted list of children with positive z-indices.
paintList(posZOrderList(), context, localPaintingInfo, localPaintFlags);
@@ -3884,7 +3875,7 @@
}
// Now check our overflow objects.
- hitLayer = hitTestList(m_normalFlowList, rootLayer, request, result, hitTestRect, hitTestLocation,
+ hitLayer = hitTestList(m_normalFlowList.get(), rootLayer, request, result, hitTestRect, hitTestLocation,
localTransformState.get(), zOffsetForDescendantsPtr, zOffset, unflattenedTransformState.get(), depthSortDescendants);
if (hitLayer) {
if (!depthSortDescendants)
@@ -4832,7 +4823,7 @@
// Ignore non-overflow layers and reflections.
if (child->isNormalFlowOnly() && (!m_reflection || reflectionLayer() != child)) {
if (!m_normalFlowList)
- m_normalFlowList = new Vector<RenderLayer*>;
+ m_normalFlowList = adoptPtr(new Vector<RenderLayer*>);
m_normalFlowList->append(child);
}
}
@@ -4840,7 +4831,7 @@
m_normalFlowListDirty = false;
}
-void RenderLayer::collectLayers(bool includeHiddenLayers, Vector<RenderLayer*>*& posBuffer, Vector<RenderLayer*>*& negBuffer)
+void RenderLayer::collectLayers(bool includeHiddenLayers, OwnPtr<Vector<RenderLayer*> >& posBuffer, OwnPtr<Vector<RenderLayer*> >& negBuffer)
{
#if ENABLE(DIALOG_ELEMENT)
if (isInTopLayer())
@@ -4853,11 +4844,11 @@
bool includeHiddenLayer = includeHiddenLayers || (m_hasVisibleContent || (m_hasVisibleDescendant && isStackingContext()));
if (includeHiddenLayer && !isNormalFlowOnly() && !renderer()->isRenderFlowThread()) {
// Determine which buffer the child should be in.
- Vector<RenderLayer*>*& buffer = (zIndex() >= 0) ? posBuffer : negBuffer;
+ OwnPtr<Vector<RenderLayer*> >& buffer = (zIndex() >= 0) ? posBuffer : negBuffer;
// Create the buffer if it doesn't exist yet.
if (!buffer)
- buffer = new Vector<RenderLayer*>;
+ buffer = adoptPtr(new Vector<RenderLayer*>);
// Append ourselves at the end of the appropriate buffer.
buffer->append(this);
@@ -5086,12 +5077,11 @@
if (renderer()->style()->overflowX() == OMARQUEE && renderer()->style()->marqueeBehavior() != MNONE && renderer()->isBox()) {
if (!m_marquee)
- m_marquee = new RenderMarquee(this);
+ m_marquee = adoptPtr(new RenderMarquee(this));
m_marquee->updateMarqueeStyle();
}
else if (m_marquee) {
- delete m_marquee;
- m_marquee = 0;
+ m_marquee.clear();
}
updateStackingContextsAfterStyleChange(oldStyle);
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (135604 => 135605)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2012-11-23 14:22:55 UTC (rev 135604)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2012-11-23 14:55:46 UTC (rev 135605)
@@ -284,7 +284,7 @@
void styleChanged(StyleDifference, const RenderStyle* oldStyle);
- RenderMarquee* marquee() const { return m_marquee; }
+ RenderMarquee* marquee() const { return m_marquee.get(); }
bool isNormalFlowOnly() const { return m_isNormalFlowOnly; }
bool isSelfPaintingLayer() const { return m_isSelfPaintingLayer; }
@@ -433,7 +433,7 @@
{
ASSERT(!m_zOrderListsDirty);
ASSERT(isStackingContext() || !m_posZOrderList);
- return m_posZOrderList;
+ return m_posZOrderList.get();
}
bool hasNegativeZOrderList() const { return negZOrderList() && negZOrderList()->size(); }
@@ -442,11 +442,11 @@
{
ASSERT(!m_zOrderListsDirty);
ASSERT(isStackingContext() || !m_negZOrderList);
- return m_negZOrderList;
+ return m_negZOrderList.get();
}
void dirtyNormalFlowList();
- Vector<RenderLayer*>* normalFlowList() const { ASSERT(!m_normalFlowListDirty); return m_normalFlowList; }
+ Vector<RenderLayer*>* normalFlowList() const { ASSERT(!m_normalFlowListDirty); return m_normalFlowList.get(); }
// Update our normal and z-index lists.
void updateLayerListsIfNeeded();
@@ -764,7 +764,7 @@
LayoutUnit renderBoxX() const { return renderBoxLocation().x(); }
LayoutUnit renderBoxY() const { return renderBoxLocation().y(); }
- void collectLayers(bool includeHiddenLayers, Vector<RenderLayer*>*&, Vector<RenderLayer*>*&);
+ void collectLayers(bool includeHiddenLayers, OwnPtr<Vector<RenderLayer*> >&, OwnPtr<Vector<RenderLayer*> >&);
void updateCompositingAndLayerListsIfNeeded();
@@ -1038,18 +1038,18 @@
// descendant layers within the stacking context that have z-indices of 0 or greater
// (auto will count as 0). m_negZOrderList holds descendants within our stacking context with negative
// z-indices.
- Vector<RenderLayer*>* m_posZOrderList;
- Vector<RenderLayer*>* m_negZOrderList;
+ OwnPtr<Vector<RenderLayer*> > m_posZOrderList;
+ OwnPtr<Vector<RenderLayer*> > m_negZOrderList;
// This list contains child layers that cannot create stacking contexts. For now it is just
// overflow layers, but that may change in the future.
- Vector<RenderLayer*>* m_normalFlowList;
+ OwnPtr<Vector<RenderLayer*> > m_normalFlowList;
OwnPtr<ClipRectsCache> m_clipRectsCache;
IntPoint m_cachedOverlayScrollbarOffset;
- RenderMarquee* m_marquee; // Used by layers with overflow:marquee
+ OwnPtr<RenderMarquee> m_marquee; // Used by layers with overflow:marquee
// Cached normal flow values for absolute positioned elements with static left/top values.
LayoutUnit m_staticInlinePosition;
@@ -1076,15 +1076,8 @@
{
ASSERT(!isStackingContext());
- if (m_posZOrderList) {
- delete m_posZOrderList;
- m_posZOrderList = 0;
- }
-
- if (m_negZOrderList) {
- delete m_negZOrderList;
- m_negZOrderList = 0;
- }
+ m_posZOrderList.clear();
+ m_negZOrderList.clear();
}
inline void RenderLayer::updateZOrderLists()