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

Side by Side Diff: Source/WebCore/rendering/RenderBlock.cpp

Issue 11784026: Revert 137759 (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1312/
Patch Set: Created 7 years, 11 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
« no previous file with comments | « LayoutTests/mathml/mo-stretch-crash-expected.txt ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 1316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 if (!child->isSelfCollapsingBlock()) 1327 if (!child->isSelfCollapsingBlock())
1328 return false; 1328 return false;
1329 } 1329 }
1330 return true; 1330 return true;
1331 } 1331 }
1332 return false; 1332 return false;
1333 } 1333 }
1334 1334
1335 void RenderBlock::startDelayUpdateScrollInfo() 1335 void RenderBlock::startDelayUpdateScrollInfo()
1336 { 1336 {
1337 if (!gDelayedUpdateScrollInfoSet) { 1337 if (gDelayUpdateScrollInfo == 0) {
1338 ASSERT(!gDelayUpdateScrollInfo); 1338 ASSERT(!gDelayedUpdateScrollInfoSet);
1339 gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet; 1339 gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet;
1340 } 1340 }
1341 ASSERT(gDelayedUpdateScrollInfoSet); 1341 ASSERT(gDelayedUpdateScrollInfoSet);
1342 ++gDelayUpdateScrollInfo; 1342 ++gDelayUpdateScrollInfo;
1343 } 1343 }
1344 1344
1345 void RenderBlock::finishDelayUpdateScrollInfo() 1345 void RenderBlock::finishDelayUpdateScrollInfo()
1346 { 1346 {
1347 --gDelayUpdateScrollInfo; 1347 --gDelayUpdateScrollInfo;
1348 ASSERT(gDelayUpdateScrollInfo >= 0); 1348 ASSERT(gDelayUpdateScrollInfo >= 0);
1349 if (gDelayUpdateScrollInfo == 0) { 1349 if (gDelayUpdateScrollInfo == 0) {
1350 ASSERT(gDelayedUpdateScrollInfoSet); 1350 ASSERT(gDelayedUpdateScrollInfoSet);
1351 1351
1352 Vector<RenderBlock*> infoSet; 1352 OwnPtr<DelayedUpdateScrollInfoSet> infoSet(adoptPtr(gDelayedUpdateScroll InfoSet));
1353 while (gDelayedUpdateScrollInfoSet && gDelayedUpdateScrollInfoSet->size( )) { 1353 gDelayedUpdateScrollInfoSet = 0;
1354 copyToVector(*gDelayedUpdateScrollInfoSet, infoSet); 1354
1355 for (Vector<RenderBlock*>::iterator it = infoSet.begin(); it != info Set.end(); ++it) { 1355 for (DelayedUpdateScrollInfoSet::iterator it = infoSet->begin(); it != i nfoSet->end(); ++it) {
1356 RenderBlock* block = *it; 1356 RenderBlock* block = *it;
1357 // |block| may have been destroyed at this point, but then it wi ll have been removed from gDelayedUpdateScrollInfoSet. 1357 if (block->hasOverflowClip()) {
1358 if (gDelayedUpdateScrollInfoSet && gDelayedUpdateScrollInfoSet-> contains(block)) { 1358 block->layer()->updateScrollInfoAfterLayout();
1359 gDelayedUpdateScrollInfoSet->remove(block);
1360 if (block->hasOverflowClip())
1361 block->layer()->updateScrollInfoAfterLayout();
1362 }
1363 } 1359 }
1364 } 1360 }
1365 delete gDelayedUpdateScrollInfoSet;
1366 gDelayedUpdateScrollInfoSet = 0;
1367 ASSERT(!gDelayUpdateScrollInfo);
1368 } 1361 }
1369 } 1362 }
1370 1363
1371 void RenderBlock::updateScrollInfoAfterLayout() 1364 void RenderBlock::updateScrollInfoAfterLayout()
1372 { 1365 {
1373 if (hasOverflowClip()) { 1366 if (hasOverflowClip()) {
1374 if (style()->isFlippedBlocksWritingMode()) { 1367 if (style()->isFlippedBlocksWritingMode()) {
1375 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=97937 1368 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=97937
1376 // Workaround for now. We cannot delay the scroll info for overflow 1369 // Workaround for now. We cannot delay the scroll info for overflow
1377 // for items with opposite writing directions, as the contents needs 1370 // for items with opposite writing directions, as the contents needs
(...skipping 6347 matching lines...) Expand 10 before | Expand all | Expand 10 after
7725 } 7718 }
7726 7719
7727 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl oatingObject* floatingObject) 7720 String ValueToString<RenderBlock::FloatingObject*>::string(const RenderBlock::Fl oatingObject* floatingObject)
7728 { 7721 {
7729 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->fr ameRect().pixelSnappedX(), floatingObject->frameRect().pixelSnappedY(), floating Object->frameRect().pixelSnappedMaxX(), floatingObject->frameRect().pixelSnapped MaxY()); 7722 return String::format("%p (%dx%d %dx%d)", floatingObject, floatingObject->fr ameRect().pixelSnappedX(), floatingObject->frameRect().pixelSnappedY(), floating Object->frameRect().pixelSnappedMaxX(), floatingObject->frameRect().pixelSnapped MaxY());
7730 } 7723 }
7731 7724
7732 #endif 7725 #endif
7733 7726
7734 } // namespace WebCore 7727 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/mathml/mo-stretch-crash-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698