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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 1242 matching lines...) Expand 10 before | Expand all | Expand 10 after
1253 1253
1254 AllowPaintInvalidationScope scoper(frameView()); 1254 AllowPaintInvalidationScope scoper(frameView());
1255 1255
1256 if ((style()->borderImage().image() && style()->borderImage().image()->data( ) == image) || 1256 if ((style()->borderImage().image() && style()->borderImage().image()->data( ) == image) ||
1257 (style()->maskBoxImage().image() && style()->maskBoxImage().image()->dat a() == image)) { 1257 (style()->maskBoxImage().image() && style()->maskBoxImage().image()->dat a() == image)) {
1258 setShouldDoFullPaintInvalidation(true); 1258 setShouldDoFullPaintInvalidation(true);
1259 return; 1259 return;
1260 } 1260 }
1261 1261
1262 ShapeValue* shapeOutsideValue = style()->shapeOutside(); 1262 ShapeValue* shapeOutsideValue = style()->shapeOutside();
1263 if (!frameView()->isInPerformLayout() && isFloating() && shapeOutsideValue & & shapeOutsideValue->image() && shapeOutsideValue->image()->data() == image) { 1263 if (isFloating() && shapeOutsideValue && shapeOutsideValue->image() && shape OutsideValue->image()->data() == image) {
1264 ShapeOutsideInfo::ensureInfo(*this).markShapeAsDirty(); 1264 ShapeOutsideInfo& info = ShapeOutsideInfo::ensureInfo(*this);
1265 markShapeOutsideDependentsForLayout(); 1265 if (!info.isComputingShape()) {
1266 info.markShapeAsDirty();
1267 markShapeOutsideDependentsForLayout();
1268 }
1266 } 1269 }
1267 1270
1268 if (!paintInvalidationLayerRectsForImage(image, style()->backgroundLayers(), true)) 1271 if (!paintInvalidationLayerRectsForImage(image, style()->backgroundLayers(), true))
1269 paintInvalidationLayerRectsForImage(image, style()->maskLayers(), false) ; 1272 paintInvalidationLayerRectsForImage(image, style()->maskLayers(), false) ;
1270 } 1273 }
1271 1274
1272 bool RenderBox::paintInvalidationLayerRectsForImage(WrappedImagePtr image, const FillLayer& layers, bool drawingBackground) 1275 bool RenderBox::paintInvalidationLayerRectsForImage(WrappedImagePtr image, const FillLayer& layers, bool drawingBackground)
1273 { 1276 {
1274 for (const FillLayer* curLayer = &layers; curLayer; curLayer = curLayer->nex t()) { 1277 for (const FillLayer* curLayer = &layers; curLayer; curLayer = curLayer->nex t()) {
1275 if (curLayer->image() && image == curLayer->image()->data() && curLayer- >image()->canRender(*this, style()->effectiveZoom())) { 1278 if (curLayer->image() && image == curLayer->image()->data() && curLayer- >image()->canRender(*this, style()->effectiveZoom())) {
(...skipping 3233 matching lines...) Expand 10 before | Expand all | Expand 10 after
4509 ASSERT(style()->hasBackground() || style()->hasBoxDecorations()); 4512 ASSERT(style()->hasBackground() || style()->hasBoxDecorations());
4510 4513
4511 if (m_rareData && m_rareData->m_previousBorderBoxSize.width() != -1) 4514 if (m_rareData && m_rareData->m_previousBorderBoxSize.width() != -1)
4512 return m_rareData->m_previousBorderBoxSize; 4515 return m_rareData->m_previousBorderBoxSize;
4513 4516
4514 // We didn't save the old border box size because it was the same as the siz e of oldBounds. 4517 // We didn't save the old border box size because it was the same as the siz e of oldBounds.
4515 return previousBoundsSize; 4518 return previousBoundsSize;
4516 } 4519 }
4517 4520
4518 } // namespace blink 4521 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698