| 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights |
| 5 * reserved. | 5 * reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 const Text* end_text = LatestLogicallyAdjacentTextNode(this); | 169 const Text* end_text = LatestLogicallyAdjacentTextNode(this); |
| 170 | 170 |
| 171 Node* one_past_end_text = end_text->nextSibling(); | 171 Node* one_past_end_text = end_text->nextSibling(); |
| 172 unsigned result_length = 0; | 172 unsigned result_length = 0; |
| 173 for (const Node* n = start_text; n != one_past_end_text; | 173 for (const Node* n = start_text; n != one_past_end_text; |
| 174 n = n->nextSibling()) { | 174 n = n->nextSibling()) { |
| 175 if (!n->IsTextNode()) | 175 if (!n->IsTextNode()) |
| 176 continue; | 176 continue; |
| 177 const String& data = ToText(n)->data(); | 177 const String& data = ToText(n)->data(); |
| 178 if (std::numeric_limits<unsigned>::max() - data.length() < result_length) | 178 if (std::numeric_limits<unsigned>::max() - data.length() < result_length) |
| 179 CRASH(); | 179 IMMEDIATE_CRASH(); |
| 180 result_length += data.length(); | 180 result_length += data.length(); |
| 181 } | 181 } |
| 182 StringBuilder result; | 182 StringBuilder result; |
| 183 result.ReserveCapacity(result_length); | 183 result.ReserveCapacity(result_length); |
| 184 for (const Node* n = start_text; n != one_past_end_text; | 184 for (const Node* n = start_text; n != one_past_end_text; |
| 185 n = n->nextSibling()) { | 185 n = n->nextSibling()) { |
| 186 if (!n->IsTextNode()) | 186 if (!n->IsTextNode()) |
| 187 continue; | 187 continue; |
| 188 result.Append(ToText(n)->data()); | 188 result.Append(ToText(n)->data()); |
| 189 } | 189 } |
| (...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 | 471 |
| 472 Text* Text::CloneWithData(const String& data) { | 472 Text* Text::CloneWithData(const String& data) { |
| 473 return Create(GetDocument(), data); | 473 return Create(GetDocument(), data); |
| 474 } | 474 } |
| 475 | 475 |
| 476 DEFINE_TRACE(Text) { | 476 DEFINE_TRACE(Text) { |
| 477 CharacterData::Trace(visitor); | 477 CharacterData::Trace(visitor); |
| 478 } | 478 } |
| 479 | 479 |
| 480 } // namespace blink | 480 } // namespace blink |
| OLD | NEW |