Commit f5815d4f authored by yosin@chromium.org's avatar yosin@chromium.org

Move static member functions next{Previous,Next}Offset() and...

Move static member functions next{Previous,Next}Offset() and uncheckedPreviousOffsetForBackwardDeletion() out from PositionAlgorithm<Strategy> template class

This patch moves a member function |next{Previous,Next}Offset()| and
|uncheckedPreviousOffsetForBackwardDeletion()| out from
|PositionAlgorithm<Strategy>| template class as non-member functions since
they are independent from |Strategy| template parameter to simplify class
declaration for improving code halth.

BUG=518738
TEST=n/a; no behavior changes

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

git-svn-id: svn://svn.chromium.org/blink/trunk@200892 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent defe0934
......@@ -314,6 +314,10 @@ int PositionAlgorithm<Strategy>::compareTo(const PositionAlgorithm<Strategy>& ot
return comparePositions(*this, other);
}
// TODO(yosin) To avoid forward declaration, we should move implementation of
// |uncheckedPreviousOffsetForBackwardDeletion()| here.
static int uncheckedPreviousOffsetForBackwardDeletion(const Node*, int current);
template <typename Strategy>
PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::previous(PositionMoveType moveType) const
{
......@@ -384,20 +388,17 @@ PositionAlgorithm<Strategy> PositionAlgorithm<Strategy>::next(PositionMoveType m
return PositionAlgorithm<Strategy>(*this);
}
template <typename Strategy>
int PositionAlgorithm<Strategy>::uncheckedPreviousOffset(const Node* n, int current)
int uncheckedPreviousOffset(const Node* n, int current)
{
return n->layoutObject() ? n->layoutObject()->previousOffset(current) : current - 1;
}
template <typename Strategy>
int PositionAlgorithm<Strategy>::uncheckedPreviousOffsetForBackwardDeletion(const Node* n, int current)
static int uncheckedPreviousOffsetForBackwardDeletion(const Node* n, int current)
{
return n->layoutObject() ? n->layoutObject()->previousOffsetForBackwardDeletion(current) : current - 1;
}
template <typename Strategy>
int PositionAlgorithm<Strategy>::uncheckedNextOffset(const Node* n, int current)
int uncheckedNextOffset(const Node* n, int current)
{
return n->layoutObject() ? n->layoutObject()->nextOffset(current) : current + 1;
}
......
......@@ -170,9 +170,6 @@ public:
// using composed characters, the result may be inside a single user-visible character if a ligature is formed.
PositionAlgorithm<Strategy> previous(PositionMoveType = CodePoint) const;
PositionAlgorithm<Strategy> next(PositionMoveType = CodePoint) const;
static int uncheckedPreviousOffset(const Node*, int current);
static int uncheckedPreviousOffsetForBackwardDeletion(const Node*, int current);
static int uncheckedNextOffset(const Node*, int current);
int compareTo(const PositionAlgorithm<Strategy>&) const;
......@@ -446,6 +443,9 @@ bool hasRenderedNonAnonymousDescendantsWithHeight(LayoutObject*);
CORE_EXPORT bool inRenderedText(const Position&);
CORE_EXPORT bool inRenderedText(const PositionInComposedTree&);
CORE_EXPORT int uncheckedPreviousOffset(const Node*, int current);
CORE_EXPORT int uncheckedNextOffset(const Node*, int current);
} // namespace blink
#ifndef NDEBUG
......
......@@ -94,7 +94,7 @@ void PositionIteratorAlgorithm<Strategy>::increment()
}
if (m_anchorNode->layoutObject() && !Strategy::hasChildren(*m_anchorNode) && m_offsetInAnchor < Strategy::lastOffsetForEditing(m_anchorNode)) {
m_offsetInAnchor = PositionAlgorithm<Strategy>::uncheckedNextOffset(m_anchorNode, m_offsetInAnchor);
m_offsetInAnchor = uncheckedNextOffset(m_anchorNode, m_offsetInAnchor);
} else {
m_nodeAfterPositionInAnchor = m_anchorNode;
m_anchorNode = Strategy::parent(*m_nodeAfterPositionInAnchor);
......@@ -127,7 +127,7 @@ void PositionIteratorAlgorithm<Strategy>::decrement()
m_offsetInAnchor = Strategy::hasChildren(*m_anchorNode)? 0 : Strategy::lastOffsetForEditing(m_anchorNode);
} else {
if (m_offsetInAnchor && m_anchorNode->layoutObject()) {
m_offsetInAnchor = PositionAlgorithm<Strategy>::uncheckedPreviousOffset(m_anchorNode, m_offsetInAnchor);
m_offsetInAnchor = uncheckedPreviousOffset(m_anchorNode, m_offsetInAnchor);
} else {
m_nodeAfterPositionInAnchor = m_anchorNode;
m_anchorNode = Strategy::parent(*m_anchorNode);
......
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