summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/FlowThreadController.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/FlowThreadController.cpp')
-rw-r--r--Source/WebCore/rendering/FlowThreadController.cpp20
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