Commit a846ddd7 authored by kouhei@chromium.org's avatar kouhei@chromium.org

Make members of SegmentedSubstring private

Before this CL, SegmentedSubstring::{m_length,m_data} was declared public.
This CL makes them private and adds public accessors to them.

BUG=None
TESTS=Refactoring only. Shouldn't change any behaviour.

Review URL: https://codereview.chromium.org/1317693006

git-svn-id: svn://svn.chromium.org/blink/trunk@201221 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent aba91b8a
......@@ -24,7 +24,7 @@ namespace blink {
unsigned SegmentedString::length() const
{
unsigned length = m_currentString.m_length;
unsigned length = m_currentString.length();
if (m_pushedChar1) {
++length;
if (m_pushedChar2)
......@@ -34,7 +34,7 @@ unsigned SegmentedString::length() const
Deque<SegmentedSubstring>::const_iterator it = m_substrings.begin();
Deque<SegmentedSubstring>::const_iterator e = m_substrings.end();
for (; it != e; ++it)
length += it->m_length;
length += it->length();
}
return length;
}
......@@ -70,10 +70,10 @@ void SegmentedString::clear()
void SegmentedString::append(const SegmentedSubstring& s)
{
ASSERT(!m_closed);
if (!s.m_length)
if (!s.length())
return;
if (!m_currentString.m_length) {
if (!m_currentString.length()) {
m_numberOfCharactersConsumedPriorToCurrentString += m_currentString.numberOfCharactersConsumed();
m_currentString = s;
updateAdvanceFunctionPointers();
......@@ -87,7 +87,7 @@ void SegmentedString::prepend(const SegmentedSubstring& s)
{
ASSERT(!escaped());
ASSERT(!s.numberOfCharactersConsumed());
if (!s.m_length)
if (!s.length())
return;
// FIXME: We're assuming that the prepend were originally consumed by
......@@ -96,8 +96,8 @@ void SegmentedString::prepend(const SegmentedSubstring& s)
// current use, but we might need to handle the more elaborate
// cases in the future.
m_numberOfCharactersConsumedPriorToCurrentString += m_currentString.numberOfCharactersConsumed();
m_numberOfCharactersConsumedPriorToCurrentString -= s.m_length;
if (!m_currentString.m_length) {
m_numberOfCharactersConsumedPriorToCurrentString -= s.length();
if (!m_currentString.length()) {
m_currentString = s;
updateAdvanceFunctionPointers();
} else {
......@@ -134,7 +134,7 @@ void SegmentedString::append(const SegmentedString& s)
for (; it != e; ++it)
append(*it);
}
m_currentChar = m_pushedChar1 ? m_pushedChar1 : (m_currentString.m_length ? m_currentString.getCurrentChar() : 0);
m_currentChar = m_pushedChar1 ? m_pushedChar1 : (m_currentString.length() ? m_currentString.getCurrentChar() : 0);
}
void SegmentedString::prepend(const SegmentedString& s)
......@@ -148,7 +148,7 @@ void SegmentedString::prepend(const SegmentedString& s)
prepend(*it);
}
prepend(s.m_currentString);
m_currentChar = m_currentString.m_length ? m_currentString.getCurrentChar() : 0;
m_currentChar = m_currentString.length() ? m_currentString.getCurrentChar() : 0;
}
void SegmentedString::advanceSubstring()
......@@ -247,8 +247,9 @@ void SegmentedString::advanceSlowCase()
}
updateAdvanceFunctionPointers();
} else if (m_currentString.m_length) {
if (!--m_currentString.m_length)
} else if (m_currentString.length()) {
m_currentString.decrementLength();
if (!m_currentString.length())
advanceSubstring();
} else if (!isComposite()) {
m_currentString.clear();
......@@ -257,7 +258,7 @@ void SegmentedString::advanceSlowCase()
m_advanceFunc = &SegmentedString::advanceEmpty;
m_advanceAndUpdateLineNumberFunc = &SegmentedString::advanceEmpty;
}
m_currentChar = m_currentString.m_length ? m_currentString.getCurrentChar() : 0;
m_currentChar = m_currentString.length() ? m_currentString.getCurrentChar() : 0;
}
void SegmentedString::advanceAndUpdateLineNumberSlowCase()
......@@ -272,13 +273,14 @@ void SegmentedString::advanceAndUpdateLineNumberSlowCase()
}
updateAdvanceFunctionPointers();
} else if (m_currentString.m_length) {
} else if (m_currentString.length()) {
if (m_currentString.getCurrentChar() == '\n' && m_currentString.doNotExcludeLineNumbers()) {
++m_currentLine;
// Plus 1 because numberOfCharactersConsumed value hasn't incremented yet; it does with m_length decrement below.
// Plus 1 because numberOfCharactersConsumed value hasn't incremented yet; it does with length() decrement below.
m_numberOfCharactersConsumedPriorToCurrentLine = numberOfCharactersConsumed() + 1;
}
if (!--m_currentString.m_length)
m_currentString.decrementLength();
if (!m_currentString.length())
advanceSubstring();
else
m_currentString.incrementAndGetCurrentChar(); // Only need the ++
......@@ -290,12 +292,12 @@ void SegmentedString::advanceAndUpdateLineNumberSlowCase()
m_advanceAndUpdateLineNumberFunc = &SegmentedString::advanceEmpty;
}
m_currentChar = m_currentString.m_length ? m_currentString.getCurrentChar() : 0;
m_currentChar = m_currentString.length() ? m_currentString.getCurrentChar() : 0;
}
void SegmentedString::advanceEmpty()
{
ASSERT(!m_currentString.m_length && !isComposite());
ASSERT(!m_currentString.length() && !isComposite());
m_currentChar = 0;
}
......
......@@ -125,14 +125,21 @@ public:
return incrementAndGetCurrentChar16();
}
public:
ALWAYS_INLINE bool haveOneCharacterLeft() const
{
return m_length == 1;
}
ALWAYS_INLINE void decrementLength() { --m_length; }
ALWAYS_INLINE int length() const { return m_length; }
private:
union {
const LChar* string8Ptr;
const UChar* string16Ptr;
} m_data;
int m_length;
private:
bool m_doNotExcludeLineNumbers;
bool m_is8Bit;
String m_string;
......@@ -167,7 +174,7 @@ public:
, m_empty(!str.length())
, m_fastPathFlags(NoFastPath)
{
if (m_currentString.m_length)
if (m_currentString.length())
m_currentChar = m_currentString.getCurrentChar();
updateAdvanceFunctionPointers();
}
......@@ -211,10 +218,9 @@ public:
{
if (m_fastPathFlags & Use8BitAdvance) {
ASSERT(!m_pushedChar1);
bool haveOneCharacterLeft = (--m_currentString.m_length == 1);
m_currentChar = m_currentString.incrementAndGetCurrentChar8();
if (!haveOneCharacterLeft)
m_currentString.decrementLength();
if (!m_currentString.haveOneCharacterLeft())
return;
updateSlowCaseFunctionPointers();
......@@ -231,12 +237,9 @@ public:
ASSERT(!m_pushedChar1);
bool haveNewLine = (m_currentChar == '\n') & !!(m_fastPathFlags & Use8BitAdvanceAndUpdateLineNumbers);
bool haveOneCharacterLeft = (--m_currentString.m_length == 1);
m_currentChar = m_currentString.incrementAndGetCurrentChar8();
if (!(haveNewLine | haveOneCharacterLeft))
return;
m_currentString.decrementLength();
bool haveOneCharacterLeft = m_currentString.haveOneCharacterLeft();
if (haveNewLine) {
++m_currentLine;
......@@ -273,7 +276,7 @@ public:
void advancePastNewlineAndUpdateLineNumber()
{
ASSERT(currentChar() == '\n');
if (!m_pushedChar1 && m_currentString.m_length > 1) {
if (!m_pushedChar1 && m_currentString.length() > 1) {
int newLineFlag = m_currentString.doNotExcludeLineNumbers();
m_currentLine += newLineFlag;
if (newLineFlag)
......@@ -336,14 +339,15 @@ private:
void decrementAndCheckLength()
{
ASSERT(m_currentString.m_length > 1);
if (--m_currentString.m_length == 1)
ASSERT(m_currentString.length() > 1);
m_currentString.decrementLength();
if (m_currentString.haveOneCharacterLeft())
updateSlowCaseFunctionPointers();
}
void updateAdvanceFunctionPointers()
{
if ((m_currentString.m_length > 1) && !m_pushedChar1) {
if ((m_currentString.length() > 1) && !m_pushedChar1) {
if (m_currentString.is8Bit()) {
m_advanceFunc = &SegmentedString::advance8;
m_fastPathFlags = Use8BitAdvance;
......@@ -365,7 +369,7 @@ private:
return;
}
if (!m_currentString.m_length && !isComposite()) {
if (!m_currentString.length() && !isComposite()) {
m_advanceFunc = &SegmentedString::advanceEmpty;
m_fastPathFlags = NoFastPath;
m_advanceAndUpdateLineNumberFunc = &SegmentedString::advanceEmpty;
......@@ -376,7 +380,7 @@ private:
inline LookAheadResult lookAheadInline(const String& string, TextCaseSensitivity caseSensitivity)
{
if (!m_pushedChar1 && string.length() <= static_cast<unsigned>(m_currentString.m_length)) {
if (!m_pushedChar1 && string.length() <= static_cast<unsigned>(m_currentString.length())) {
String currentSubstring = m_currentString.currentSubString(string.length());
if (currentSubstring.startsWith(string, caseSensitivity))
return DidMatch;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment