diff options
Diffstat (limited to 'Source/WebCore/rendering/FlowThreadController.cpp')
-rw-r--r-- | Source/WebCore/rendering/FlowThreadController.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/WebCore/rendering/FlowThreadController.cpp b/Source/WebCore/rendering/FlowThreadController.cpp index 9edd0aa7e..cb4bdb1f2 100644 --- a/Source/WebCore/rendering/FlowThreadController.cpp +++ b/Source/WebCore/rendering/FlowThreadController.cpp @@ -49,6 +49,7 @@ FlowThreadController::FlowThreadController(RenderView* view) : m_view(view) , m_currentRenderFlowThread(0) , m_isRenderNamedFlowThreadOrderDirty(false) + , m_autoLogicalHeightRegionsCount(0) { } @@ -98,6 +99,8 @@ void FlowThreadController::layoutRenderNamedFlowThreads() { ASSERT(m_renderNamedFlowThreadList); + ASSERT(isAutoLogicalHeightRegionsFlagConsistent()); + // Remove the left-over flow threads. RenderNamedFlowThreadList toRemoveList; for (RenderNamedFlowThreadList::iterator iter = m_renderNamedFlowThreadList->begin(); iter != m_renderNamedFlowThreadList->end(); ++iter) { @@ -156,4 +159,21 @@ void FlowThreadController::unregisterNamedFlowContentNode(Node* contentNode) m_mapNamedFlowContentNodes.remove(contentNode); } +#ifndef NDEBUG +bool FlowThreadController::isAutoLogicalHeightRegionsFlagConsistent() const +{ + if (!hasRenderNamedFlowThreads()) + return !hasAutoLogicalHeightRegions(); + + // Count the number of auto height regions + unsigned autoLogicalHeightRegions = 0; + for (RenderNamedFlowThreadList::iterator iter = m_renderNamedFlowThreadList->begin(); iter != m_renderNamedFlowThreadList->end(); ++iter) { + RenderNamedFlowThread* flowRenderer = *iter; + autoLogicalHeightRegions += flowRenderer->autoLogicalHeightRegionsCount(); + } + + return autoLogicalHeightRegions == m_autoLogicalHeightRegionsCount; +} +#endif + } // namespace WebCore |