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: third_party/WebKit/Source/core/layout/svg/SVGTextLayoutEngine.cpp

Issue 1844723003: Move metrics list storage to LayoutSVGInlineText (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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) Research In Motion Limited 2010-2012. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010-2012. 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 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 return false; 289 return false;
290 290
291 logicalAttributes = m_layoutAttributes[m_layoutAttributesPosition]; 291 logicalAttributes = m_layoutAttributes[m_layoutAttributesPosition];
292 m_logicalMetricsListOffset = 0; 292 m_logicalMetricsListOffset = 0;
293 m_logicalCharacterOffset = 0; 293 m_logicalCharacterOffset = 0;
294 return true; 294 return true;
295 } 295 }
296 296
297 bool SVGTextLayoutEngine::currentLogicalCharacterMetrics(SVGTextLayoutAttributes *& logicalAttributes, SVGTextMetrics& logicalMetrics) 297 bool SVGTextLayoutEngine::currentLogicalCharacterMetrics(SVGTextLayoutAttributes *& logicalAttributes, SVGTextMetrics& logicalMetrics)
298 { 298 {
299 const Vector<SVGTextMetrics>* textMetricsValues = &logicalAttributes->textMe tricsValues(); 299 const Vector<SVGTextMetrics>* metricsList = &logicalAttributes->context()->m etricsList();
300 unsigned textMetricsSize = textMetricsValues->size(); 300 unsigned metricsListSize = metricsList->size();
301 while (true) { 301 while (true) {
302 if (m_logicalMetricsListOffset == textMetricsSize) { 302 if (m_logicalMetricsListOffset == metricsListSize) {
303 if (!currentLogicalCharacterAttributes(logicalAttributes)) 303 if (!currentLogicalCharacterAttributes(logicalAttributes))
304 return false; 304 return false;
305 305
306 textMetricsValues = &logicalAttributes->textMetricsValues(); 306 metricsList = &logicalAttributes->context()->metricsList();
307 textMetricsSize = textMetricsValues->size(); 307 metricsListSize = metricsList->size();
308 continue; 308 continue;
309 } 309 }
310 310
311 ASSERT(textMetricsSize); 311 ASSERT(metricsListSize);
312 ASSERT(m_logicalMetricsListOffset < textMetricsSize); 312 ASSERT(m_logicalMetricsListOffset < metricsListSize);
313 logicalMetrics = textMetricsValues->at(m_logicalMetricsListOffset); 313 logicalMetrics = metricsList->at(m_logicalMetricsListOffset);
314 if (logicalMetrics.isEmpty() || (!logicalMetrics.width() && !logicalMetr ics.height())) { 314 if (logicalMetrics.isEmpty() || (!logicalMetrics.width() && !logicalMetr ics.height())) {
315 advanceToNextLogicalCharacter(logicalMetrics); 315 advanceToNextLogicalCharacter(logicalMetrics);
316 continue; 316 continue;
317 } 317 }
318 318
319 // Stop if we found the next valid logical text metrics object. 319 // Stop if we found the next valid logical text metrics object.
320 return true; 320 return true;
321 } 321 }
322 322
323 ASSERT_NOT_REACHED(); 323 ASSERT_NOT_REACHED();
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
533 } 533 }
534 534
535 if (!didStartTextFragment) 535 if (!didStartTextFragment)
536 return; 536 return;
537 537
538 // Close last open fragment, if needed. 538 // Close last open fragment, if needed.
539 recordTextFragment(textBox); 539 recordTextFragment(textBox);
540 } 540 }
541 541
542 } // namespace blink 542 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698