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

Side by Side Diff: Source/core/rendering/RenderText.cpp

Issue 20231002: Replace RenderArena with PartitionAlloc (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase. Created 7 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderTableSection.cpp ('k') | Source/core/rendering/RenderView.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 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Dirk Mueller (mueller@kde.org) 3 * (C) 2000 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 box->nextTextBox()->setPreviousTextBox(box->prevTextBox()); 291 box->nextTextBox()->setPreviousTextBox(box->prevTextBox());
292 if (box->prevTextBox()) 292 if (box->prevTextBox())
293 box->prevTextBox()->setNextTextBox(box->nextTextBox()); 293 box->prevTextBox()->setNextTextBox(box->nextTextBox());
294 294
295 checkConsistency(); 295 checkConsistency();
296 } 296 }
297 297
298 void RenderText::deleteTextBoxes() 298 void RenderText::deleteTextBoxes()
299 { 299 {
300 if (firstTextBox()) { 300 if (firstTextBox()) {
301 RenderArena* arena = renderArena();
302 InlineTextBox* next; 301 InlineTextBox* next;
303 for (InlineTextBox* curr = firstTextBox(); curr; curr = next) { 302 for (InlineTextBox* curr = firstTextBox(); curr; curr = next) {
304 next = curr->nextTextBox(); 303 next = curr->nextTextBox();
305 curr->destroy(arena); 304 curr->destroy();
306 } 305 }
307 m_firstTextBox = m_lastTextBox = 0; 306 m_firstTextBox = m_lastTextBox = 0;
308 } 307 }
309 } 308 }
310 309
311 PassRefPtr<StringImpl> RenderText::originalText() const 310 PassRefPtr<StringImpl> RenderText::originalText() const
312 { 311 {
313 Node* e = node(); 312 Node* e = node();
314 return (e && e->isTextNode()) ? toText(e)->dataImpl() : 0; 313 return (e && e->isTextNode()) ? toText(e)->dataImpl() : 0;
315 } 314 }
(...skipping 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after
1489 deleteTextBoxes(); 1488 deleteTextBoxes();
1490 else if (!m_linesDirty) { 1489 else if (!m_linesDirty) {
1491 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox()) 1490 for (InlineTextBox* box = firstTextBox(); box; box = box->nextTextBox())
1492 box->dirtyLineBoxes(); 1491 box->dirtyLineBoxes();
1493 } 1492 }
1494 m_linesDirty = false; 1493 m_linesDirty = false;
1495 } 1494 }
1496 1495
1497 InlineTextBox* RenderText::createTextBox() 1496 InlineTextBox* RenderText::createTextBox()
1498 { 1497 {
1499 return new (renderArena()) InlineTextBox(this); 1498 return new InlineTextBox(this);
1500 } 1499 }
1501 1500
1502 InlineTextBox* RenderText::createInlineTextBox() 1501 InlineTextBox* RenderText::createInlineTextBox()
1503 { 1502 {
1504 InlineTextBox* textBox = createTextBox(); 1503 InlineTextBox* textBox = createTextBox();
1505 if (!m_firstTextBox) 1504 if (!m_firstTextBox)
1506 m_firstTextBox = m_lastTextBox = textBox; 1505 m_firstTextBox = m_lastTextBox = textBox;
1507 else { 1506 else {
1508 m_lastTextBox->setNextTextBox(textBox); 1507 m_lastTextBox->setNextTextBox(textBox);
1509 textBox->setPreviousTextBox(m_lastTextBox); 1508 textBox->setPreviousTextBox(m_lastTextBox);
(...skipping 12 matching lines...) Expand all
1522 // We want the box to be destroyed. 1521 // We want the box to be destroyed.
1523 s->remove(); 1522 s->remove();
1524 if (m_firstTextBox == s) 1523 if (m_firstTextBox == s)
1525 m_firstTextBox = s->nextTextBox(); 1524 m_firstTextBox = s->nextTextBox();
1526 else 1525 else
1527 s->prevTextBox()->setNextTextBox(s->nextTextBox()); 1526 s->prevTextBox()->setNextTextBox(s->nextTextBox());
1528 if (m_lastTextBox == s) 1527 if (m_lastTextBox == s)
1529 m_lastTextBox = s->prevTextBox(); 1528 m_lastTextBox = s->prevTextBox();
1530 else 1529 else
1531 s->nextTextBox()->setPreviousTextBox(s->prevTextBox()); 1530 s->nextTextBox()->setPreviousTextBox(s->prevTextBox());
1532 s->destroy(renderArena()); 1531 s->destroy();
1533 return; 1532 return;
1534 } 1533 }
1535 1534
1536 m_containsReversedText |= !s->isLeftToRightDirection(); 1535 m_containsReversedText |= !s->isLeftToRightDirection();
1537 } 1536 }
1538 1537
1539 float RenderText::width(unsigned from, unsigned len, float xPos, bool firstLine, HashSet<const SimpleFontData*>* fallbackFonts, GlyphOverflow* glyphOverflow) co nst 1538 float RenderText::width(unsigned from, unsigned len, float xPos, bool firstLine, HashSet<const SimpleFontData*>* fallbackFonts, GlyphOverflow* glyphOverflow) co nst
1540 { 1539 {
1541 if (from >= textLength()) 1540 if (from >= textLength())
1542 return 0; 1541 return 0;
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
1930 1929
1931 SecureTextTimer* secureTextTimer = gSecureTextTimers->get(this); 1930 SecureTextTimer* secureTextTimer = gSecureTextTimers->get(this);
1932 if (!secureTextTimer) { 1931 if (!secureTextTimer) {
1933 secureTextTimer = new SecureTextTimer(this); 1932 secureTextTimer = new SecureTextTimer(this);
1934 gSecureTextTimers->add(this, secureTextTimer); 1933 gSecureTextTimers->add(this, secureTextTimer);
1935 } 1934 }
1936 secureTextTimer->restartWithNewText(lastTypedCharacterOffset); 1935 secureTextTimer->restartWithNewText(lastTypedCharacterOffset);
1937 } 1936 }
1938 1937
1939 } // namespace WebCore 1938 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderTableSection.cpp ('k') | Source/core/rendering/RenderView.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698