Index: Source/core/dom/PositionIterator.cpp |
diff --git a/Source/core/dom/PositionIterator.cpp b/Source/core/dom/PositionIterator.cpp |
index b5799d3e9c2f5dd562657ff8965c81cbb3c348e8..a00076c809df271e1eb9c6281ff1c80201a69298 100644 |
--- a/Source/core/dom/PositionIterator.cpp |
+++ b/Source/core/dom/PositionIterator.cpp |
@@ -77,7 +77,7 @@ void PositionIteratorAlgorithm<Strategy>::increment() |
return; |
} |
- if (!Strategy::hasChildren(*m_anchorNode) && m_offsetInAnchor < Strategy::lastOffsetForEditing(m_anchorNode)) { |
+ if (m_anchorNode->layoutObject() && !Strategy::hasChildren(*m_anchorNode) && m_offsetInAnchor < Strategy::lastOffsetForEditing(m_anchorNode)) { |
m_offsetInAnchor = PositionType::uncheckedNextOffset(m_anchorNode, m_offsetInAnchor); |
} else { |
m_nodeAfterPositionInAnchor = m_anchorNode; |
@@ -110,7 +110,7 @@ void PositionIteratorAlgorithm<Strategy>::decrement() |
m_anchorNode = Strategy::lastChild(*m_anchorNode); |
m_offsetInAnchor = Strategy::hasChildren(*m_anchorNode)? 0 : Strategy::lastOffsetForEditing(m_anchorNode); |
} else { |
- if (m_offsetInAnchor) { |
+ if (m_offsetInAnchor && m_anchorNode->layoutObject()) { |
m_offsetInAnchor = PositionType::uncheckedPreviousOffset(m_anchorNode, m_offsetInAnchor); |
} else { |
m_nodeAfterPositionInAnchor = m_anchorNode; |