Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1525)

Unified Diff: Source/core/rendering/RenderBox.cpp

Issue 635533003: Don't delete nodes in the float interval tree while traversing it. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Add correct png! Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/rendering/RenderBox.cpp
diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp
index 39befae260204bc7a2b5b40e9d6460cfa6e6109a..e2220e8b0e5e275cd1c6830a5f8959909f04fe5c 100644
--- a/Source/core/rendering/RenderBox.cpp
+++ b/Source/core/rendering/RenderBox.cpp
@@ -1260,9 +1260,12 @@ void RenderBox::imageChanged(WrappedImagePtr image, const IntRect*)
}
ShapeValue* shapeOutsideValue = style()->shapeOutside();
- if (!frameView()->isInPerformLayout() && isFloating() && shapeOutsideValue && shapeOutsideValue->image() && shapeOutsideValue->image()->data() == image) {
- ShapeOutsideInfo::ensureInfo(*this).markShapeAsDirty();
- markShapeOutsideDependentsForLayout();
+ if (isFloating() && shapeOutsideValue && shapeOutsideValue->image() && shapeOutsideValue->image()->data() == image) {
+ ShapeOutsideInfo& info = ShapeOutsideInfo::ensureInfo(*this);
+ if (!info.isComputingShape()) {
+ info.markShapeAsDirty();
+ markShapeOutsideDependentsForLayout();
+ }
}
if (!paintInvalidationLayerRectsForImage(image, style()->backgroundLayers(), true))

Powered by Google App Engine
This is Rietveld 408576698