Changeset 90858 in webkit


Ignore:
Timestamp:
Jul 12, 2011, 3:14:47 PM (14 years ago)
Author:
cevans@google.com
Message:

Merge 89831
BUG=87298
Review URL: http://codereview.chromium.org/7350003

Location:
branches/chromium/782
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/chromium/782/Source/WebCore/editing/TextIterator.cpp

    r86387 r90858  
    460460            return false;
    461461        }
    462         if (!m_handledFirstLetter && renderer->isTextFragment()) {
     462        if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset) {
    463463            handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
    464464            if (m_firstLetterText) {
     
    497497    }
    498498
     499   
     500    m_textBox = renderer->firstTextBox();
     501    if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset)
     502        handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
     503
     504    if (m_firstLetterText)
     505        renderer = m_firstLetterText;
     506
    499507    // Used when text boxes are out of order (Hebrew/Arabic w/ embeded LTR text)
    500508    if (renderer->containsReversedText()) {
     
    505513        std::sort(m_sortedTextBoxes.begin(), m_sortedTextBoxes.end(), InlineTextBox::compareByStart);
    506514        m_sortedTextBoxesPosition = 0;
    507     }
    508    
    509     m_textBox = renderer->containsReversedText() ? (m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0]) : renderer->firstTextBox();
    510     if (!m_handledFirstLetter && renderer->isTextFragment() && !m_offset)
    511         handleTextNodeFirstLetter(static_cast<RenderTextFragment*>(renderer));
     515        m_textBox = m_sortedTextBoxes.isEmpty() ? 0 : m_sortedTextBoxes[0];
     516    }
     517
    512518    handleTextBox();
    513519    return true;
     
    976982    m_text = m_emitsTextWithoutTranscoding ? renderer->textWithoutTranscoding() : renderer->text();
    977983    ASSERT(m_text.characters());
     984    ASSERT(0 <= textStartOffset && textStartOffset < static_cast<int>(m_text.length()));
     985    ASSERT(0 <= textEndOffset && textEndOffset <= static_cast<int>(m_text.length()));
     986    ASSERT(textStartOffset <= textEndOffset);
    978987
    979988    m_positionNode = textNode;
Note: See TracChangeset for help on using the changeset viewer.