OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010, 2011 Apple Inc. All rights
reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2010, 2011 Apple Inc. All rights
reserved. |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 return 0; | 178 return 0; |
179 } | 179 } |
180 | 180 |
181 PassRefPtr<HTMLElement> HTMLTableElement::insertRow(int index, ExceptionCode& ec
) | 181 PassRefPtr<HTMLElement> HTMLTableElement::insertRow(int index, ExceptionCode& ec
) |
182 { | 182 { |
183 if (index < -1) { | 183 if (index < -1) { |
184 ec = INDEX_SIZE_ERR; | 184 ec = INDEX_SIZE_ERR; |
185 return 0; | 185 return 0; |
186 } | 186 } |
187 | 187 |
188 HTMLTableRowElement* lastRow = 0; | 188 RefPtr<Node> protectFromMutationEvents(this); |
189 HTMLTableRowElement* row = 0; | 189 |
| 190 RefPtr<HTMLTableRowElement> lastRow = 0; |
| 191 RefPtr<HTMLTableRowElement> row = 0; |
190 if (index == -1) | 192 if (index == -1) |
191 lastRow = HTMLTableRowsCollection::lastRow(this); | 193 lastRow = HTMLTableRowsCollection::lastRow(this); |
192 else { | 194 else { |
193 for (int i = 0; i <= index; ++i) { | 195 for (int i = 0; i <= index; ++i) { |
194 row = HTMLTableRowsCollection::rowAfter(this, lastRow); | 196 row = HTMLTableRowsCollection::rowAfter(this, lastRow.get()); |
195 if (!row) { | 197 if (!row) { |
196 if (i != index) { | 198 if (i != index) { |
197 ec = INDEX_SIZE_ERR; | 199 ec = INDEX_SIZE_ERR; |
198 return 0; | 200 return 0; |
199 } | 201 } |
200 break; | 202 break; |
201 } | 203 } |
202 lastRow = row; | 204 lastRow = row; |
203 } | 205 } |
204 } | 206 } |
205 | 207 |
206 ContainerNode* parent; | 208 RefPtr<ContainerNode> parent; |
207 if (lastRow) | 209 if (lastRow) |
208 parent = row ? row->parentNode() : lastRow->parentNode(); | 210 parent = row ? row->parentNode() : lastRow->parentNode(); |
209 else { | 211 else { |
210 parent = lastBody(); | 212 parent = lastBody(); |
211 if (!parent) { | 213 if (!parent) { |
212 RefPtr<HTMLTableSectionElement> newBody = HTMLTableSectionElement::c
reate(tbodyTag, document()); | 214 RefPtr<HTMLTableSectionElement> newBody = HTMLTableSectionElement::c
reate(tbodyTag, document()); |
213 RefPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(doc
ument()); | 215 RefPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(doc
ument()); |
214 newBody->appendChild(newRow, ec); | 216 newBody->appendChild(newRow, ec); |
215 appendChild(newBody.release(), ec); | 217 appendChild(newBody.release(), ec); |
216 return newRow.release(); | 218 return newRow.release(); |
217 } | 219 } |
218 } | 220 } |
219 | 221 |
220 RefPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document())
; | 222 RefPtr<HTMLTableRowElement> newRow = HTMLTableRowElement::create(document())
; |
221 parent->insertBefore(newRow, row, ec); | 223 parent->insertBefore(newRow, row.get(), ec); |
222 return newRow.release(); | 224 return newRow.release(); |
223 } | 225 } |
224 | 226 |
225 void HTMLTableElement::deleteRow(int index, ExceptionCode& ec) | 227 void HTMLTableElement::deleteRow(int index, ExceptionCode& ec) |
226 { | 228 { |
227 HTMLTableRowElement* row = 0; | 229 HTMLTableRowElement* row = 0; |
228 if (index == -1) | 230 if (index == -1) |
229 row = HTMLTableRowsCollection::lastRow(this); | 231 row = HTMLTableRowsCollection::lastRow(this); |
230 else { | 232 else { |
231 for (int i = 0; i <= index; ++i) { | 233 for (int i = 0; i <= index; ++i) { |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 } | 615 } |
614 | 616 |
615 void HTMLTableElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons
t | 617 void HTMLTableElement::addSubresourceAttributeURLs(ListHashSet<KURL>& urls) cons
t |
616 { | 618 { |
617 HTMLElement::addSubresourceAttributeURLs(urls); | 619 HTMLElement::addSubresourceAttributeURLs(urls); |
618 | 620 |
619 addSubresourceURL(urls, document()->completeURL(getAttribute(backgroundAttr)
)); | 621 addSubresourceURL(urls, document()->completeURL(getAttribute(backgroundAttr)
)); |
620 } | 622 } |
621 | 623 |
622 } | 624 } |
OLD | NEW |