Index: third_party/WebKit/Source/core/layout/LayoutListItem.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutListItem.cpp b/third_party/WebKit/Source/core/layout/LayoutListItem.cpp |
index 0905478e71eb3e1aee3bff94043203efd3b8ef9c..6724ab10d058fba3e41a378bdae5c630255ff8ad 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutListItem.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutListItem.cpp |
@@ -313,11 +313,12 @@ bool LayoutListItem::updateMarkerLocation() |
if (markerParent != lineBoxParent) { |
m_marker->remove(); |
- lineBoxParent->addChild(m_marker, firstNonMarkerChild(lineBoxParent)); |
- m_marker->updateMarginsAndContent(); |
- // If markerParent is an anonymous block with no children, destroy it. |
+ // If markerParent is now an anonymous block with no children, this is the time to attempt to remove it |
+ // as it might have gone away after addChild(). |
if (markerParent && markerParent->isAnonymousBlock() && !toLayoutBlock(markerParent)->firstChild() && !toLayoutBlock(markerParent)->continuation()) |
markerParent->destroy(); |
+ lineBoxParent->addChild(m_marker, firstNonMarkerChild(lineBoxParent)); |
+ m_marker->updateMarginsAndContent(); |
return true; |
} |