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

Side by Side Diff: third_party/WebKit/Source/core/layout/line/InlineFlowBox.cpp

Issue 1931303002: Simplify SVG layout attribute reordering (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove userData argument/closure. Created 4 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 } else { 1229 } else {
1230 LayoutUnit topOfEmphasisMark = curr->logicalTop() - style.fo nt().emphasisMarkHeight(style.textEmphasisMarkString()); 1230 LayoutUnit topOfEmphasisMark = curr->logicalTop() - style.fo nt().emphasisMarkHeight(style.textEmphasisMarkString());
1231 result = std::max(result, allowedPosition - topOfEmphasisMar k); 1231 result = std::max(result, allowedPosition - topOfEmphasisMar k);
1232 } 1232 }
1233 } 1233 }
1234 } 1234 }
1235 } 1235 }
1236 return result; 1236 return result;
1237 } 1237 }
1238 1238
1239 void InlineFlowBox::collectLeafBoxesInLogicalOrder(Vector<InlineBox*>& leafBoxes InLogicalOrder, CustomInlineBoxRangeReverse customReverseImplementation, void* u serData) const 1239 void InlineFlowBox::collectLeafBoxesInLogicalOrder(Vector<InlineBox*>& leafBoxes InLogicalOrder, CustomInlineBoxRangeReverse customReverseImplementation) const
1240 { 1240 {
1241 InlineBox* leaf = firstLeafChild(); 1241 InlineBox* leaf = firstLeafChild();
1242 1242
1243 // FIXME: The reordering code is a copy of parts from BidiResolver::createBi diRunsForLine, operating directly on InlineBoxes, instead of BidiRuns. 1243 // FIXME: The reordering code is a copy of parts from BidiResolver::createBi diRunsForLine, operating directly on InlineBoxes, instead of BidiRuns.
1244 // Investigate on how this code could possibly be shared. 1244 // Investigate on how this code could possibly be shared.
1245 unsigned char minLevel = 128; 1245 unsigned char minLevel = 128;
1246 unsigned char maxLevel = 0; 1246 unsigned char maxLevel = 0;
1247 1247
1248 // First find highest and lowest levels, and initialize leafBoxesInLogicalOr der with the leaf boxes in visual order. 1248 // First find highest and lowest levels, and initialize leafBoxesInLogicalOr der with the leaf boxes in visual order.
1249 for (; leaf; leaf = leaf->nextLeafChild()) { 1249 for (; leaf; leaf = leaf->nextLeafChild()) {
(...skipping 22 matching lines...) Expand all
1272 break; 1272 break;
1273 ++it; 1273 ++it;
1274 } 1274 }
1275 Vector<InlineBox*>::iterator first = it; 1275 Vector<InlineBox*>::iterator first = it;
1276 while (it != end) { 1276 while (it != end) {
1277 if ((*it)->bidiLevel() < minLevel) 1277 if ((*it)->bidiLevel() < minLevel)
1278 break; 1278 break;
1279 ++it; 1279 ++it;
1280 } 1280 }
1281 Vector<InlineBox*>::iterator last = it; 1281 Vector<InlineBox*>::iterator last = it;
1282 if (customReverseImplementation) { 1282 if (customReverseImplementation)
1283 ASSERT(userData); 1283 (*customReverseImplementation)(first, last);
1284 (*customReverseImplementation)(userData, first, last); 1284 else
1285 } else {
1286 std::reverse(first, last); 1285 std::reverse(first, last);
1287 }
1288 } 1286 }
1289 ++minLevel; 1287 ++minLevel;
1290 } 1288 }
1291 } 1289 }
1292 1290
1293 const char* InlineFlowBox::boxName() const 1291 const char* InlineFlowBox::boxName() const
1294 { 1292 {
1295 return "InlineFlowBox"; 1293 return "InlineFlowBox";
1296 } 1294 }
1297 1295
(...skipping 19 matching lines...) Expand all
1317 ASSERT(child->prevOnLine() == prev); 1315 ASSERT(child->prevOnLine() == prev);
1318 prev = child; 1316 prev = child;
1319 } 1317 }
1320 ASSERT(prev == m_lastChild); 1318 ASSERT(prev == m_lastChild);
1321 #endif 1319 #endif
1322 } 1320 }
1323 1321
1324 #endif 1322 #endif
1325 1323
1326 } // namespace blink 1324 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698