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

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

Issue 8343063: Merge 98372 - Crash in WebCore::RenderTableSection::addChild due to assert failure (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/874/
Patch Set: Created 9 years, 1 month 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org)
3 * (C) 1997 Torben Weis (weis@kde.org) 3 * (C) 1997 Torben Weis (weis@kde.org)
4 * (C) 1998 Waldo Bastian (bastian@kde.org) 4 * (C) 1998 Waldo Bastian (bastian@kde.org)
5 * (C) 1999 Lars Knoll (knoll@kde.org) 5 * (C) 1999 Lars Knoll (knoll@kde.org)
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) 6 * (C) 1999 Antti Koivisto (koivisto@kde.org)
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r ights reserved.
8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com) 8 * Copyright (C) 2006 Alexey Proskuryakov (ap@nypop.com)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 return; 175 return;
176 } 176 }
177 177
178 if (!beforeChild && lastChild() && lastChild()->isTableSection() && lastChil d()->isAnonymous() && !lastChild()->isBeforeContent()) { 178 if (!beforeChild && lastChild() && lastChild()->isTableSection() && lastChil d()->isAnonymous() && !lastChild()->isBeforeContent()) {
179 lastChild()->addChild(child); 179 lastChild()->addChild(child);
180 return; 180 return;
181 } 181 }
182 182
183 if (beforeChild && !beforeChild->isAnonymous() && beforeChild->parent() == t his) { 183 if (beforeChild && !beforeChild->isAnonymous() && beforeChild->parent() == t his) {
184 RenderObject* section = beforeChild->previousSibling(); 184 RenderObject* section = beforeChild->previousSibling();
185 if (section && section->isTableSection()) { 185 if (section && section->isTableSection() && section->isAnonymous()) {
186 ASSERT(section->isAnonymous());
187 section->addChild(child); 186 section->addChild(child);
188 return; 187 return;
189 } 188 }
190 } 189 }
191 190
192 RenderObject* lastBox = beforeChild; 191 RenderObject* lastBox = beforeChild;
193 while (lastBox && lastBox->parent()->isAnonymous() && !lastBox->isTableSecti on() && lastBox->style()->display() != TABLE_CAPTION && lastBox->style()->displa y() != TABLE_COLUMN_GROUP) 192 while (lastBox && lastBox->parent()->isAnonymous() && !lastBox->isTableSecti on() && lastBox->style()->display() != TABLE_CAPTION && lastBox->style()->displa y() != TABLE_COLUMN_GROUP)
194 lastBox = lastBox->parent(); 193 lastBox = lastBox->parent();
195 if (lastBox && lastBox->isAnonymous() && !isAfterContent(lastBox)) { 194 if (lastBox && lastBox->isAnonymous() && !isAfterContent(lastBox)) {
196 if (beforeChild == lastBox) 195 if (beforeChild == lastBox)
(...skipping 1020 matching lines...) Expand 10 before | Expand all | Expand 10 after
1217 if (visibleToHitTesting() && (action == HitTestBlockBackground || action == HitTestChildBlockBackground) && boundsRect.intersects(result.rectForPoint(pointI nContainer))) { 1216 if (visibleToHitTesting() && (action == HitTestBlockBackground || action == HitTestChildBlockBackground) && boundsRect.intersects(result.rectForPoint(pointI nContainer))) {
1218 updateHitTestResult(result, flipForWritingMode(pointInContainer - toLayo utSize(adjustedLocation))); 1217 updateHitTestResult(result, flipForWritingMode(pointInContainer - toLayo utSize(adjustedLocation)));
1219 if (!result.addNodeToRectBasedTestResult(node(), pointInContainer, bound sRect)) 1218 if (!result.addNodeToRectBasedTestResult(node(), pointInContainer, bound sRect))
1220 return true; 1219 return true;
1221 } 1220 }
1222 1221
1223 return false; 1222 return false;
1224 } 1223 }
1225 1224
1226 } 1225 }
OLDNEW
« no previous file with comments | « LayoutTests/fast/table/table-anonymous-section-bug-expected.txt ('k') | Source/WebCore/rendering/RenderTableRow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698