Index: Source/WebCore/rendering/RenderBlock.h |
=================================================================== |
--- Source/WebCore/rendering/RenderBlock.h (revision 126659) |
+++ Source/WebCore/rendering/RenderBlock.h (working copy) |
@@ -54,6 +54,9 @@ |
template <class Iterator> struct MidpointState; |
typedef BidiResolver<InlineIterator, BidiRun> InlineBidiResolver; |
typedef MidpointState<InlineIterator> LineMidpointState; |
+typedef WTF::ListHashSet<RenderBox*> TrackedRendererListHashSet; |
+typedef WTF::HashMap<const RenderBlock*, TrackedRendererListHashSet*> TrackedDescendantsMap; |
+typedef WTF::HashMap<const RenderBox*, HashSet<RenderBlock*>*> TrackedContainerMap; |
enum CaretType { CursorCaret, DragCaret }; |
@@ -99,16 +102,19 @@ |
virtual void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0); |
void insertPositionedObject(RenderBox*); |
- void removePositionedObject(RenderBox*); |
+ static void removePositionedObject(RenderBox*); |
void removePositionedObjects(RenderBlock*); |
- typedef ListHashSet<RenderBox*, 4> PositionedObjectsListHashSet; |
- PositionedObjectsListHashSet* positionedObjects() const { return m_positionedObjects.get(); } |
- bool hasPositionedObjects() const { return m_positionedObjects && !m_positionedObjects->isEmpty(); } |
+ TrackedRendererListHashSet* positionedObjects() const; |
+ bool hasPositionedObjects() const |
+ { |
+ TrackedRendererListHashSet* objects = positionedObjects(); |
+ return objects && !objects->isEmpty(); |
+ } |
void addPercentHeightDescendant(RenderBox*); |
static void removePercentHeightDescendant(RenderBox*); |
- HashSet<RenderBox*>* percentHeightDescendants() const; |
+ TrackedRendererListHashSet* percentHeightDescendants() const; |
static bool hasPercentHeightContainerMap(); |
static bool hasPercentHeightDescendant(RenderBox*); |
static void clearPercentHeightDescendantsFrom(RenderBox*); |
@@ -510,6 +516,9 @@ |
void layoutInlineChildren(bool relayoutChildren, LayoutUnit& repaintLogicalTop, LayoutUnit& repaintLogicalBottom); |
BidiRun* handleTrailingSpaces(BidiRunList<BidiRun>&, BidiContext*); |
+ void insertIntoTrackedRendererMaps(RenderBox* descendant, TrackedDescendantsMap*&, TrackedContainerMap*&); |
+ static void removeFromTrackedRendererMaps(RenderBox* descendant, TrackedDescendantsMap*&, TrackedContainerMap*&); |
+ |
virtual void borderFitAdjust(LayoutRect&) const; // Shrink the box in which the border paints if border-fit is set. |
virtual void updateBeforeAfterContent(PseudoId); |
@@ -1068,9 +1077,6 @@ |
const RenderBlock* m_renderer; |
}; |
OwnPtr<FloatingObjects> m_floatingObjects; |
- |
- typedef PositionedObjectsListHashSet::const_iterator Iterator; |
- OwnPtr<PositionedObjectsListHashSet> m_positionedObjects; |
// Allocated only when some of these fields have non-default values |
struct RenderBlockRareData { |