Chromium Code Reviews| Index: Source/WebCore/rendering/RenderObject.cpp |
| diff --git a/Source/WebCore/rendering/RenderObject.cpp b/Source/WebCore/rendering/RenderObject.cpp |
| index fb9f13930b28e669b243333e7b47b64605cf5802..236d82d4c42b2e6ef7622197002dd736626dc07b 100644 |
| --- a/Source/WebCore/rendering/RenderObject.cpp |
| +++ b/Source/WebCore/rendering/RenderObject.cpp |
| @@ -118,8 +118,6 @@ struct SameSizeAsRenderObject { |
| COMPILE_ASSERT(sizeof(RenderObject) == sizeof(SameSizeAsRenderObject), RenderObject_should_stay_small); |
| -bool RenderObject::s_affectsParentBlock = false; |
|
eseidel
2013/04/05 01:50:36
Do we have any clue why these came to be this way?
esprehn
2013/04/17 03:29:01
I had a discussion on IRC with apple folks way bac
|
| - |
| RenderObjectAncestorLineboxDirtySet* RenderObject::s_ancestorLineboxDirtySet = 0; |
| void* RenderObject::operator new(size_t sz, RenderArena* renderArena) |
| @@ -1802,7 +1800,8 @@ void RenderObject::setStyle(PassRefPtr<RenderStyle> style) |
| diff = adjustStyleDifference(diff, contextSensitiveProperties); |
| - styleWillChange(diff, style.get()); |
| + StyleChangeState state; |
| + styleWillChange(diff, style.get(), state); |
| RefPtr<RenderStyle> oldStyle = m_style.release(); |
| setStyleInternal(style); |
| @@ -1820,7 +1819,7 @@ void RenderObject::setStyle(PassRefPtr<RenderStyle> style) |
| bool doesNotNeedLayout = !m_parent || isText(); |
| - styleDidChange(diff, oldStyle.get()); |
| + styleDidChange(diff, oldStyle.get(), state); |
| // FIXME: |this| might be destroyed here. This can currently happen for a RenderTextFragment when |
| // its first-letter block gets an update in RenderTextFragment::styleDidChange. For RenderTextFragment(s), |
| @@ -1857,7 +1856,7 @@ static inline bool rendererHasBackground(const RenderObject* renderer) |
| return renderer && renderer->hasBackground(); |
| } |
| -void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle* newStyle) |
| +void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle* newStyle, StyleChangeState& state) |
| { |
| if (m_style) { |
| // If our z-index changes value or our visibility changes, |
| @@ -1900,7 +1899,7 @@ void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle* newS |
| // from the positioned objects list. |
| toRenderBox(this)->removeFloatingOrPositionedChildFromBlockLists(); |
| - s_affectsParentBlock = isFloatingOrOutOfFlowPositioned() |
| + state.affectsParentBlock = isFloatingOrOutOfFlowPositioned() |
| && (!newStyle->isFloating() && !newStyle->hasOutOfFlowPosition()) |
| && parent() && (parent()->isBlockFlow() || parent()->isRenderInline()); |
| @@ -1914,8 +1913,7 @@ void RenderObject::styleWillChange(StyleDifference diff, const RenderStyle* newS |
| setHasOverflowClip(false); |
| setHasTransform(false); |
| setHasReflection(false); |
| - } else |
| - s_affectsParentBlock = false; |
| + } |
| if (view()->frameView()) { |
| bool shouldBlitOnFixedBackgroundImage = false; |
| @@ -1965,9 +1963,9 @@ static inline bool areCursorsEqual(const RenderStyle* a, const RenderStyle* b) |
| return a->cursor() == b->cursor() && (a->cursors() == b->cursors() || areNonIdenticalCursorListsEqual(a, b)); |
| } |
| -void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) |
| +void RenderObject::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle, const StyleChangeState& state) |
| { |
| - if (s_affectsParentBlock) |
| + if (state.affectsParentBlock) |
| handleDynamicFloatPositionChange(); |
| #if ENABLE(SVG) |