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

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

Issue 1162383003: C++11: Replace 0 with nullptr where applicable in layout code. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Add one more file. Created 5 years, 6 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 | « Source/core/layout/line/InlineFlowBox.h ('k') | Source/core/layout/line/InlineIterator.h » ('j') | 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) 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 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 189
190 if (child == m_firstChild) 190 if (child == m_firstChild)
191 m_firstChild = child->nextOnLine(); 191 m_firstChild = child->nextOnLine();
192 if (child == m_lastChild) 192 if (child == m_lastChild)
193 m_lastChild = child->prevOnLine(); 193 m_lastChild = child->prevOnLine();
194 if (child->nextOnLine()) 194 if (child->nextOnLine())
195 child->nextOnLine()->setPrevOnLine(child->prevOnLine()); 195 child->nextOnLine()->setPrevOnLine(child->prevOnLine());
196 if (child->prevOnLine()) 196 if (child->prevOnLine())
197 child->prevOnLine()->setNextOnLine(child->nextOnLine()); 197 child->prevOnLine()->setNextOnLine(child->nextOnLine());
198 198
199 child->setParent(0); 199 child->setParent(nullptr);
200 200
201 checkConsistency(); 201 checkConsistency();
202 } 202 }
203 203
204 void InlineFlowBox::deleteLine() 204 void InlineFlowBox::deleteLine()
205 { 205 {
206 InlineBox* child = firstChild(); 206 InlineBox* child = firstChild();
207 InlineBox* next = 0; 207 InlineBox* next = nullptr;
208 while (child) { 208 while (child) {
209 ASSERT(this == child->parent()); 209 ASSERT(this == child->parent());
210 next = child->nextOnLine(); 210 next = child->nextOnLine();
211 #if ENABLE(ASSERT) 211 #if ENABLE(ASSERT)
212 child->setParent(0); 212 child->setParent(nullptr);
213 #endif 213 #endif
214 child->deleteLine(); 214 child->deleteLine();
215 child = next; 215 child = next;
216 } 216 }
217 #if ENABLE(ASSERT) 217 #if ENABLE(ASSERT)
218 m_firstChild = 0; 218 m_firstChild = nullptr;
219 m_lastChild = 0; 219 m_lastChild = nullptr;
220 #endif 220 #endif
221 221
222 removeLineBoxFromLayoutObject(); 222 removeLineBoxFromLayoutObject();
223 destroy(); 223 destroy();
224 } 224 }
225 225
226 void InlineFlowBox::removeLineBoxFromLayoutObject() 226 void InlineFlowBox::removeLineBoxFromLayoutObject()
227 { 227 {
228 lineBoxes()->removeLineBox(this); 228 lineBoxes()->removeLineBox(this);
229 } 229 }
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 } 521 }
522 } 522 }
523 523
524 if (!checkChildren) 524 if (!checkChildren)
525 return; 525 return;
526 526
527 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { 527 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
528 if (curr->layoutObject().isOutOfFlowPositioned()) 528 if (curr->layoutObject().isOutOfFlowPositioned())
529 continue; // Positioned placeholders don't affect calculations. 529 continue; // Positioned placeholders don't affect calculations.
530 530
531 InlineFlowBox* inlineFlowBox = curr->isInlineFlowBox() ? toInlineFlowBox (curr) : 0; 531 InlineFlowBox* inlineFlowBox = curr->isInlineFlowBox() ? toInlineFlowBox (curr) : nullptr;
532 532
533 bool affectsAscent = false; 533 bool affectsAscent = false;
534 bool affectsDescent = false; 534 bool affectsDescent = false;
535 535
536 // The verticalPositionForBox function returns the distance between the child box's baseline 536 // The verticalPositionForBox function returns the distance between the child box's baseline
537 // and the root box's baseline. The value is negative if the child box' s baseline is above the 537 // and the root box's baseline. The value is negative if the child box' s baseline is above the
538 // root box's baseline, and it is positive if the child box's baseline i s below the root box's baseline. 538 // root box's baseline, and it is positive if the child box's baseline i s below the root box's baseline.
539 curr->setLogicalTop(rootBox->verticalPositionForBox(curr, verticalPositi onCache).toFloat()); 539 curr->setLogicalTop(rootBox->verticalPositionForBox(curr, verticalPositi onCache).toFloat());
540 540
541 int ascent = 0; 541 int ascent = 0;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 593
594 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) { 594 for (InlineBox* curr = firstChild(); curr; curr = curr->nextOnLine()) {
595 if (curr->layoutObject().isOutOfFlowPositioned()) 595 if (curr->layoutObject().isOutOfFlowPositioned())
596 continue; // Positioned placeholders don't affect calculations. 596 continue; // Positioned placeholders don't affect calculations.
597 597
598 if (descendantsHaveSameLineHeightAndBaseline()) { 598 if (descendantsHaveSameLineHeightAndBaseline()) {
599 curr->adjustBlockDirectionPosition(adjustmentForChildrenWithSameLine HeightAndBaseline.toFloat()); 599 curr->adjustBlockDirectionPosition(adjustmentForChildrenWithSameLine HeightAndBaseline.toFloat());
600 continue; 600 continue;
601 } 601 }
602 602
603 InlineFlowBox* inlineFlowBox = curr->isInlineFlowBox() ? toInlineFlowBox (curr) : 0; 603 InlineFlowBox* inlineFlowBox = curr->isInlineFlowBox() ? toInlineFlowBox (curr) : nullptr;
604 bool childAffectsTopBottomPos = true; 604 bool childAffectsTopBottomPos = true;
605 if (curr->verticalAlign() == TOP) { 605 if (curr->verticalAlign() == TOP) {
606 curr->setLogicalTop(top.toFloat()); 606 curr->setLogicalTop(top.toFloat());
607 } else if (curr->verticalAlign() == BOTTOM) { 607 } else if (curr->verticalAlign() == BOTTOM) {
608 curr->setLogicalTop((top + maxHeight - curr->lineHeight()).toFloat() ); 608 curr->setLogicalTop((top + maxHeight - curr->lineHeight()).toFloat() );
609 } else { 609 } else {
610 if (!strictMode && inlineFlowBox && !inlineFlowBox->hasTextChildren( ) && !curr->boxModelObject()->hasInlineDirectionBordersOrPadding() 610 if (!strictMode && inlineFlowBox && !inlineFlowBox->hasTextChildren( ) && !curr->boxModelObject()->hasInlineDirectionBordersOrPadding()
611 && !(inlineFlowBox->descendantsHaveSameLineHeightAndBaseline() & & inlineFlowBox->hasTextDescendants())) 611 && !(inlineFlowBox->descendantsHaveSameLineHeightAndBaseline() & & inlineFlowBox->hasTextDescendants()))
612 childAffectsTopBottomPos = false; 612 childAffectsTopBottomPos = false;
613 LayoutUnit posAdjust = maxAscent - curr->baselinePosition(baselineTy pe); 613 LayoutUnit posAdjust = maxAscent - curr->baselinePosition(baselineTy pe);
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 } 801 }
802 802
803 inline void InlineFlowBox::addTextBoxVisualOverflow(InlineTextBox* textBox, Glyp hOverflowAndFallbackFontsMap& textBoxDataMap, LayoutRect& logicalVisualOverflow) 803 inline void InlineFlowBox::addTextBoxVisualOverflow(InlineTextBox* textBox, Glyp hOverflowAndFallbackFontsMap& textBoxDataMap, LayoutRect& logicalVisualOverflow)
804 { 804 {
805 if (textBox->knownToHaveNoOverflow()) 805 if (textBox->knownToHaveNoOverflow())
806 return; 806 return;
807 807
808 const ComputedStyle& style = textBox->layoutObject().styleRef(isFirstLineSty le()); 808 const ComputedStyle& style = textBox->layoutObject().styleRef(isFirstLineSty le());
809 809
810 GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(textBox) ; 810 GlyphOverflowAndFallbackFontsMap::iterator it = textBoxDataMap.find(textBox) ;
811 GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? 0 : &it->value.s econd; 811 GlyphOverflow* glyphOverflow = it == textBoxDataMap.end() ? nullptr : &it->v alue.second;
812 bool isFlippedLine = style.isFlippedLinesWritingMode(); 812 bool isFlippedLine = style.isFlippedLinesWritingMode();
813 813
814 int topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->bottom : glyphOverflow->top) : 0; 814 int topGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->bottom : glyphOverflow->top) : 0;
815 int bottomGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->top : glyphOverflow->bottom) : 0; 815 int bottomGlyphEdge = glyphOverflow ? (isFlippedLine ? glyphOverflow->top : glyphOverflow->bottom) : 0;
816 int leftGlyphEdge = glyphOverflow ? glyphOverflow->left : 0; 816 int leftGlyphEdge = glyphOverflow ? glyphOverflow->left : 0;
817 int rightGlyphEdge = glyphOverflow ? glyphOverflow->right : 0; 817 int rightGlyphEdge = glyphOverflow ? glyphOverflow->right : 0;
818 818
819 int strokeOverflow = static_cast<int>(ceilf(style.textStrokeWidth() / 2.0f)) ; 819 int strokeOverflow = static_cast<int>(ceilf(style.textStrokeWidth() / 2.0f)) ;
820 int topGlyphOverflow = -strokeOverflow - topGlyphEdge; 820 int topGlyphOverflow = -strokeOverflow - topGlyphEdge;
821 int bottomGlyphOverflow = strokeOverflow + bottomGlyphEdge; 821 int bottomGlyphOverflow = strokeOverflow + bottomGlyphEdge;
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 { 1064 {
1065 // The checks here match how paintFillLayer() decides whether to clip (if it does, the shadow 1065 // The checks here match how paintFillLayer() decides whether to clip (if it does, the shadow
1066 // would be clipped out, so it has to be drawn separately). 1066 // would be clipped out, so it has to be drawn separately).
1067 StyleImage* image = lastBackgroundLayer.image(); 1067 StyleImage* image = lastBackgroundLayer.image();
1068 bool hasFillImage = image && image->canRender(layoutObject(), layoutObject() .style()->effectiveZoom()); 1068 bool hasFillImage = image && image->canRender(layoutObject(), layoutObject() .style()->effectiveZoom());
1069 return (!hasFillImage && !layoutObject().style()->hasBorderRadius()) || (!pr evLineBox() && !nextLineBox()) || !parent(); 1069 return (!hasFillImage && !layoutObject().style()->hasBorderRadius()) || (!pr evLineBox() && !nextLineBox()) || !parent();
1070 } 1070 }
1071 1071
1072 InlineBox* InlineFlowBox::firstLeafChild() const 1072 InlineBox* InlineFlowBox::firstLeafChild() const
1073 { 1073 {
1074 InlineBox* leaf = 0; 1074 InlineBox* leaf = nullptr;
1075 for (InlineBox* child = firstChild(); child && !leaf; child = child->nextOnL ine()) 1075 for (InlineBox* child = firstChild(); child && !leaf; child = child->nextOnL ine())
1076 leaf = child->isLeaf() ? child : toInlineFlowBox(child)->firstLeafChild( ); 1076 leaf = child->isLeaf() ? child : toInlineFlowBox(child)->firstLeafChild( );
1077 return leaf; 1077 return leaf;
1078 } 1078 }
1079 1079
1080 InlineBox* InlineFlowBox::lastLeafChild() const 1080 InlineBox* InlineFlowBox::lastLeafChild() const
1081 { 1081 {
1082 InlineBox* leaf = 0; 1082 InlineBox* leaf = nullptr;
1083 for (InlineBox* child = lastChild(); child && !leaf; child = child->prevOnLi ne()) 1083 for (InlineBox* child = lastChild(); child && !leaf; child = child->prevOnLi ne())
1084 leaf = child->isLeaf() ? child : toInlineFlowBox(child)->lastLeafChild() ; 1084 leaf = child->isLeaf() ? child : toInlineFlowBox(child)->lastLeafChild() ;
1085 return leaf; 1085 return leaf;
1086 } 1086 }
1087 1087
1088 LayoutObject::SelectionState InlineFlowBox::selectionState() const 1088 LayoutObject::SelectionState InlineFlowBox::selectionState() const
1089 { 1089 {
1090 return LayoutObject::SelectionNone; 1090 return LayoutObject::SelectionNone;
1091 } 1091 }
1092 1092
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
1297 box->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLab el2, obj, depth + 1); 1297 box->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLab el2, obj, depth + 1);
1298 } 1298 }
1299 1299
1300 #endif 1300 #endif
1301 1301
1302 #if ENABLE(ASSERT) 1302 #if ENABLE(ASSERT)
1303 void InlineFlowBox::checkConsistency() const 1303 void InlineFlowBox::checkConsistency() const
1304 { 1304 {
1305 #ifdef CHECK_CONSISTENCY 1305 #ifdef CHECK_CONSISTENCY
1306 ASSERT(!m_hasBadChildList); 1306 ASSERT(!m_hasBadChildList);
1307 const InlineBox* prev = 0; 1307 const InlineBox* prev = nullptr;
1308 for (const InlineBox* child = m_firstChild; child; child = child->nextOnLine ()) { 1308 for (const InlineBox* child = m_firstChild; child; child = child->nextOnLine ()) {
1309 ASSERT(child->parent() == this); 1309 ASSERT(child->parent() == this);
1310 ASSERT(child->prevOnLine() == prev); 1310 ASSERT(child->prevOnLine() == prev);
1311 prev = child; 1311 prev = child;
1312 } 1312 }
1313 ASSERT(prev == m_lastChild); 1313 ASSERT(prev == m_lastChild);
1314 #endif 1314 #endif
1315 } 1315 }
1316 1316
1317 #endif 1317 #endif
1318 1318
1319 } // namespace blink 1319 } // namespace blink
OLDNEW
« no previous file with comments | « Source/core/layout/line/InlineFlowBox.h ('k') | Source/core/layout/line/InlineIterator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698