OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2007, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2007, 2008 Apple Inc. All rights reserved. |
6 * Copyright (C) 2014 Samsung Electronics. All rights reserved. | 6 * Copyright (C) 2014 Samsung Electronics. All rights reserved. |
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 26 matching lines...) Expand all Loading... |
37 Node* ChildNodeList::virtualOwnerNode() const | 37 Node* ChildNodeList::virtualOwnerNode() const |
38 { | 38 { |
39 return &ownerNode(); | 39 return &ownerNode(); |
40 } | 40 } |
41 | 41 |
42 ChildNodeList::~ChildNodeList() | 42 ChildNodeList::~ChildNodeList() |
43 { | 43 { |
44 m_parent->nodeLists()->removeChildNodeList(this); | 44 m_parent->nodeLists()->removeChildNodeList(this); |
45 } | 45 } |
46 | 46 |
47 Node* ChildNodeList::itemBefore(const Node* previous) const | |
48 { | |
49 return LIKELY(!!previous) ? previous->previousSibling() : rootNode().lastChi
ld(); | |
50 } | |
51 | |
52 Node* ChildNodeList::traverseForwardToOffset(unsigned offset, Node& currentNode,
unsigned& currentOffset) const | 47 Node* ChildNodeList::traverseForwardToOffset(unsigned offset, Node& currentNode,
unsigned& currentOffset) const |
53 { | 48 { |
54 ASSERT(currentOffset < offset); | 49 ASSERT(currentOffset < offset); |
55 Node* next = ¤tNode; | 50 Node* next = ¤tNode; |
56 while ((next = next->nextSibling())) { | 51 while ((next = next->nextSibling())) { |
57 if (++currentOffset == offset) | 52 if (++currentOffset == offset) |
58 return next; | 53 return next; |
59 } | 54 } |
60 return 0; | 55 return 0; |
61 } | 56 } |
62 | 57 |
| 58 Node* ChildNodeList::traverseBackwardToOffset(unsigned offset, Node& currentNode
, unsigned& currentOffset) const |
| 59 { |
| 60 ASSERT(currentOffset > offset); |
| 61 Node* previous = ¤tNode; |
| 62 while ((previous = previous->previousSibling())) { |
| 63 if (--currentOffset == offset) |
| 64 return previous; |
| 65 } |
| 66 return 0; |
| 67 } |
| 68 |
63 } // namespace WebCore | 69 } // namespace WebCore |
OLD | NEW |