OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 if (!isEmpty()) | 58 if (!isEmpty()) |
59 enqueueMutationRecord(); | 59 enqueueMutationRecord(); |
60 accumulatorMap().remove(m_target.get()); | 60 accumulatorMap().remove(m_target.get()); |
61 } | 61 } |
62 | 62 |
63 PassRefPtr<ChildListMutationAccumulator> ChildListMutationAccumulator::getOrCrea
te(Node& target) | 63 PassRefPtr<ChildListMutationAccumulator> ChildListMutationAccumulator::getOrCrea
te(Node& target) |
64 { | 64 { |
65 AccumulatorMap::AddResult result = accumulatorMap().add(&target, 0); | 65 AccumulatorMap::AddResult result = accumulatorMap().add(&target, 0); |
66 RefPtr<ChildListMutationAccumulator> accumulator; | 66 RefPtr<ChildListMutationAccumulator> accumulator; |
67 if (!result.isNewEntry) | 67 if (!result.isNewEntry) |
68 accumulator = result.iterator->value; | 68 accumulator = result.storedValue->value; |
69 else { | 69 else { |
70 accumulator = adoptRef(new ChildListMutationAccumulator(PassRefPtr<Node>
(target), MutationObserverInterestGroup::createForChildListMutation(target))); | 70 accumulator = adoptRef(new ChildListMutationAccumulator(PassRefPtr<Node>
(target), MutationObserverInterestGroup::createForChildListMutation(target))); |
71 result.iterator->value = accumulator.get(); | 71 result.storedValue->value = accumulator.get(); |
72 } | 72 } |
73 return accumulator.release(); | 73 return accumulator.release(); |
74 } | 74 } |
75 | 75 |
76 inline bool ChildListMutationAccumulator::isAddedNodeInOrder(Node* child) | 76 inline bool ChildListMutationAccumulator::isAddedNodeInOrder(Node* child) |
77 { | 77 { |
78 return isEmpty() || (m_lastAdded == child->previousSibling() && m_nextSiblin
g == child->nextSibling()); | 78 return isEmpty() || (m_lastAdded == child->previousSibling() && m_nextSiblin
g == child->nextSibling()); |
79 } | 79 } |
80 | 80 |
81 void ChildListMutationAccumulator::childAdded(PassRefPtr<Node> prpChild) | 81 void ChildListMutationAccumulator::childAdded(PassRefPtr<Node> prpChild) |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 if (result) { | 140 if (result) { |
141 ASSERT(!m_previousSibling); | 141 ASSERT(!m_previousSibling); |
142 ASSERT(!m_nextSibling); | 142 ASSERT(!m_nextSibling); |
143 ASSERT(!m_lastAdded); | 143 ASSERT(!m_lastAdded); |
144 } | 144 } |
145 #endif | 145 #endif |
146 return result; | 146 return result; |
147 } | 147 } |
148 | 148 |
149 } // namespace WebCore | 149 } // namespace WebCore |
OLD | NEW |