OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 | 85 |
86 // If we hit the end of either list above we need to reattach all remaining
nodes. | 86 // If we hit the end of either list above we need to reattach all remaining
nodes. |
87 | 87 |
88 for ( ; i < m_distribution.size(); ++i) | 88 for ( ; i < m_distribution.size(); ++i) |
89 m_distribution.at(i)->lazyReattachIfAttached(); | 89 m_distribution.at(i)->lazyReattachIfAttached(); |
90 | 90 |
91 for ( ; j < distribution.size(); ++j) | 91 for ( ; j < distribution.size(); ++j) |
92 distribution.at(j)->lazyReattachIfAttached(); | 92 distribution.at(j)->lazyReattachIfAttached(); |
93 | 93 |
94 m_distribution.swap(distribution); | 94 m_distribution.swap(distribution); |
| 95 m_distribution.shrinkToFit(); |
95 } | 96 } |
96 | 97 |
97 void InsertionPoint::attach(const AttachContext& context) | 98 void InsertionPoint::attach(const AttachContext& context) |
98 { | 99 { |
99 // FIXME: This loop shouldn't be needed since the distributed nodes should | 100 // FIXME: This loop shouldn't be needed since the distributed nodes should |
100 // never be detached, we can probably remove it. | 101 // never be detached, we can probably remove it. |
101 for (size_t i = 0; i < m_distribution.size(); ++i) { | 102 for (size_t i = 0; i < m_distribution.size(); ++i) { |
102 if (!m_distribution.at(i)->attached()) | 103 if (!m_distribution.at(i)->attached()) |
103 m_distribution.at(i)->attach(context); | 104 m_distribution.at(i)->attach(context); |
104 } | 105 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 node = node->parentNode(); | 140 node = node->parentNode(); |
140 } | 141 } |
141 return true; | 142 return true; |
142 } | 143 } |
143 | 144 |
144 PassRefPtr<NodeList> InsertionPoint::getDistributedNodes() | 145 PassRefPtr<NodeList> InsertionPoint::getDistributedNodes() |
145 { | 146 { |
146 document().updateDistributionForNodeIfNeeded(this); | 147 document().updateDistributionForNodeIfNeeded(this); |
147 | 148 |
148 Vector<RefPtr<Node> > nodes; | 149 Vector<RefPtr<Node> > nodes; |
| 150 nodes.reserveInitialCapacity(m_distribution.size()); |
149 for (size_t i = 0; i < m_distribution.size(); ++i) | 151 for (size_t i = 0; i < m_distribution.size(); ++i) |
150 nodes.append(m_distribution.at(i)); | 152 nodes.uncheckedAppend(m_distribution.at(i)); |
151 | 153 |
152 return StaticNodeList::adopt(nodes); | 154 return StaticNodeList::adopt(nodes); |
153 } | 155 } |
154 | 156 |
155 bool InsertionPoint::rendererIsNeeded(const RenderStyle& style) | 157 bool InsertionPoint::rendererIsNeeded(const RenderStyle& style) |
156 { | 158 { |
157 return !isActive() && HTMLElement::rendererIsNeeded(style); | 159 return !isActive() && HTMLElement::rendererIsNeeded(style); |
158 } | 160 } |
159 | 161 |
160 void InsertionPoint::childrenChanged(bool changedByParser, Node* beforeChange, N
ode* afterChange, int childCountDelta) | 162 void InsertionPoint::childrenChanged(bool changedByParser, Node* beforeChange, N
ode* afterChange, int childCountDelta) |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 current = insertedTo; | 283 current = insertedTo; |
282 results.append(insertedTo); | 284 results.append(insertedTo); |
283 continue; | 285 continue; |
284 } | 286 } |
285 } | 287 } |
286 return; | 288 return; |
287 } | 289 } |
288 } | 290 } |
289 | 291 |
290 } // namespace WebCore | 292 } // namespace WebCore |
OLD | NEW |