Changeset 276207 in webkit
- Timestamp:
- Apr 17, 2021, 2:13:20 PM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
rendering/line/BreakingContext.h (modified) (14 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r276206 r276207 1 2021-04-17 Zalan Bujtas <zalan@apple.com> 2 3 [Cleanup] Remove redundant BreakingContext::m_currentStyle 4 https://bugs.webkit.org/show_bug.cgi?id=224717 5 6 Reviewed by Antti Koivisto. 7 8 * rendering/line/BreakingContext.h: 9 (WebCore::BreakingContext::BreakingContext): 10 (WebCore::BreakingContext::initializeForCurrentObject): 11 (WebCore::BreakingContext::handleBR): 12 (WebCore::BreakingContext::handleText): 13 (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded): 14 1 15 2021-04-17 Brent Fulgham <bfulgham@apple.com> 2 16 -
trunk/Source/WebCore/rendering/line/BreakingContext.h
r276202 r276207 102 102 , m_lastObject(m_current.renderer()) 103 103 , m_nextObject(nullptr) 104 , m_currentStyle(nullptr)105 104 , m_blockStyle(block.style()) 106 105 , m_lineInfo(inLineInfo) … … 188 187 RenderObject* m_nextObject; 189 188 190 const RenderStyle* m_currentStyle;191 192 189 // Firefox and Opera will allow a table cell to grow to fit an image inside it under 193 190 // very specific circumstances (in order to match common WinIE renderings). … … 240 237 { 241 238 m_hadUncommittedWidthBeforeCurrent = !!m_width.uncommittedWidth(); 242 243 m_currentStyle = &m_current.renderer()->style(); // FIXME: Should this be &lineStyle(*m_current.renderer(), m_lineInfo); ? 244 245 ASSERT(m_currentStyle); 246 247 m_nextObject = bidiNextSkippingEmptyInlines(m_block, m_current.renderer()); 248 if (m_nextObject && m_nextObject->parent() && !m_nextObject->parent()->isDescendantOf(m_current.renderer()->parent())) 239 auto& renderer = *m_current.renderer(); 240 241 m_nextObject = bidiNextSkippingEmptyInlines(m_block, &renderer); 242 if (m_nextObject && m_nextObject->parent() && !m_nextObject->parent()->isDescendantOf(renderer.parent())) 249 243 m_includeEndWidth = true; 250 244 251 m_currWS = m_current.renderer()->isReplaced() ? m_current.renderer()->parent()->style().whiteSpace() : m_currentStyle->whiteSpace();245 m_currWS = renderer.isReplaced() ? renderer.parent()->style().whiteSpace() : renderer.style().whiteSpace(); 252 246 m_lastWS = m_lastObject->isReplaced() ? m_lastObject->parent()->style().whiteSpace() : m_lastObject->style().whiteSpace(); 253 247 … … 255 249 m_autoWrapWasEverTrueOnLine = m_autoWrapWasEverTrueOnLine || m_autoWrap; 256 250 257 m_preservesNewline = m_current.renderer()->isSVGInlineText() ? false : RenderStyle::preserveNewline(m_currWS);251 m_preservesNewline = renderer.isSVGInlineText() ? false : RenderStyle::preserveNewline(m_currWS); 258 252 259 253 m_collapseWhiteSpace = RenderStyle::collapseWhiteSpace(m_currWS); … … 277 271 { 278 272 if (fitsOnLineOrHangsAtEnd()) { 279 RenderObject& br = *m_current.renderer();273 auto& br = *m_current.renderer(); 280 274 m_lineBreak.moveToStartOf(br); 281 275 m_lineBreak.increment(); … … 294 288 // need to check for floats to clear - so if we're ignoring spaces, stop ignoring them and add a 295 289 // run for this object. 296 if (m_ignoringSpaces && m_currentStyle->clear() != Clear::None)290 if (m_ignoringSpaces && br.style().clear() != Clear::None) 297 291 m_lineWhitespaceCollapsingState.ensureLineBoxInsideIgnoredSpaces(br); 298 292 // If we were preceded by collapsing space and are in a right-aligned container we need to ensure the space gets … … 303 297 304 298 if (!m_lineInfo.isEmpty()) 305 clear = m_currentStyle->clear();299 clear = br.style().clear(); 306 300 } 307 301 m_atEnd = true; … … 699 693 int endPunctuationIndex = canHangPunctuationAtEnd && m_collapseWhiteSpace ? renderer.lastCharacterIndexStrippingSpaces() : renderer.text().length() - 1; 700 694 unsigned lastSpace = m_current.offset(); 701 float wordSpacing = m_currentStyle->fontCascade().wordSpacing();695 float wordSpacing = style.fontCascade().wordSpacing(); 702 696 float lastSpaceWordSpacing = 0; 703 697 float wordSpacingForWordMeasurement = 0; … … 706 700 float wrapW = wrapWidthOffset; 707 701 float charWidth = 0; 708 bool breakNBSP = m_autoWrap && m_currentStyle->nbspMode() == NBSPMode::Space;702 bool breakNBSP = m_autoWrap && style.nbspMode() == NBSPMode::Space; 709 703 // Auto-wrapping text should wrap in the middle of a word only if it could not wrap before the word, 710 704 // which is only possible if the word is the first thing on the line. 711 bool breakWords = m_currentStyle->breakWords() && ((m_autoWrap && (!m_width.committedWidth() && !m_width.hasCommittedReplaced())) || m_currWS == WhiteSpace::Pre);705 bool breakWords = style.breakWords() && ((m_autoWrap && (!m_width.committedWidth() && !m_width.hasCommittedReplaced())) || m_currWS == WhiteSpace::Pre); 712 706 bool midWordBreak = false; 713 bool breakAnywhere = m_currentStyle->lineBreak() == LineBreak::Anywhere && m_autoWrap;714 bool breakAll = ( m_currentStyle->wordBreak() == WordBreak::BreakAll || breakAnywhere) && m_autoWrap;715 bool keepAllWords = m_currentStyle->wordBreak() == WordBreak::KeepAll;707 bool breakAnywhere = style.lineBreak() == LineBreak::Anywhere && m_autoWrap; 708 bool breakAll = (style.wordBreak() == WordBreak::BreakAll || breakAnywhere) && m_autoWrap; 709 bool keepAllWords = style.wordBreak() == WordBreak::KeepAll; 716 710 float hyphenWidth = 0; 717 711 auto iteratorMode = mapLineBreakToIteratorMode(m_blockStyle.lineBreak()); … … 854 848 // as candidate width for this line. 855 849 bool lineWasTooWide = false; 856 if (fitsOnLineOrHangsAtEnd() && m_currentCharacterIsWS && m_currentStyle->breakOnlyAfterWhiteSpace() && (!midWordBreak || m_currWS == WhiteSpace::BreakSpaces)) {850 if (fitsOnLineOrHangsAtEnd() && m_currentCharacterIsWS && style.breakOnlyAfterWhiteSpace() && (!midWordBreak || m_currWS == WhiteSpace::BreakSpaces)) { 857 851 float charWidth = textWidth(renderer, m_current.offset(), 1, font, m_width.currentWidth(), isFixedPitch, m_collapseWhiteSpace, wordMeasurement.fallbackFonts, textLayout) + (applyWordSpacing ? wordSpacing : 0); 858 852 // Check if line is too big even without the extra space … … 971 965 } 972 966 973 if (!m_ignoringSpaces && m_currentStyle->collapseWhiteSpace()) {967 if (!m_ignoringSpaces && style.collapseWhiteSpace()) { 974 968 // If we encounter a newline, or if we encounter a second space, 975 969 // we need to break up this run and enter a mode where we start collapsing spaces. … … 1025 1019 1026 1020 if (!m_currentCharacterIsWS && previousCharacterIsWS) { 1027 if (m_autoWrap && m_currentStyle->breakOnlyAfterWhiteSpace())1021 if (m_autoWrap && style.breakOnlyAfterWhiteSpace()) 1028 1022 m_lineBreak.moveTo(renderer, m_current.offset(), m_current.nextBreakablePosition()); 1029 1023 } … … 1031 1025 if (m_collapseWhiteSpace && m_currentCharacterIsSpace && !m_ignoringSpaces) 1032 1026 m_trailingObjects.setTrailingWhitespace(renderer); 1033 else if (! m_currentStyle->collapseWhiteSpace() || !m_currentCharacterIsSpace)1027 else if (!style.collapseWhiteSpace() || !m_currentCharacterIsSpace) 1034 1028 m_trailingObjects.clear(); 1035 1029 … … 1151 1145 if (checkForBreak && !m_width.fitsOnLine(m_ignoringSpaces) && !m_hangsAtEnd) { 1152 1146 // if we have floats, try to get below them. 1153 if (m_currentCharacterIsSpace && !m_ignoringSpaces && m_c urrentStyle->collapseWhiteSpace())1147 if (m_currentCharacterIsSpace && !m_ignoringSpaces && m_collapseWhiteSpace) 1154 1148 m_trailingObjects.clear(); 1155 1149
Note:
See TracChangeset
for help on using the changeset viewer.