| 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, 2013 Apple Inc. All | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All |
| 5 * rights reserved. | 5 * rights 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 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 setDataAndUpdate(nonNullData, 0, oldLength, nonNullData.length(), | 47 setDataAndUpdate(nonNullData, 0, oldLength, nonNullData.length(), |
| 48 UpdateFromNonParser); | 48 UpdateFromNonParser); |
| 49 document().didRemoveText(this, 0, oldLength); | 49 document().didRemoveText(this, 0, oldLength); |
| 50 } | 50 } |
| 51 | 51 |
| 52 String CharacterData::substringData(unsigned offset, | 52 String CharacterData::substringData(unsigned offset, |
| 53 unsigned count, | 53 unsigned count, |
| 54 ExceptionState& exceptionState) { | 54 ExceptionState& exceptionState) { |
| 55 if (offset > length()) { | 55 if (offset > length()) { |
| 56 exceptionState.throwDOMException( | 56 exceptionState.throwDOMException( |
| 57 IndexSizeError, "The offset " + String::number(offset) + | 57 IndexSizeError, |
| 58 " is greater than the node's length (" + | 58 "The offset " + String::number(offset) + |
| 59 String::number(length()) + ")."); | 59 " is greater than the node's length (" + String::number(length()) + |
| 60 ")."); |
| 60 return String(); | 61 return String(); |
| 61 } | 62 } |
| 62 | 63 |
| 63 return m_data.substring(offset, count); | 64 return m_data.substring(offset, count); |
| 64 } | 65 } |
| 65 | 66 |
| 66 void CharacterData::parserAppendData(const String& data) { | 67 void CharacterData::parserAppendData(const String& data) { |
| 67 String newStr = m_data + data; | 68 String newStr = m_data + data; |
| 68 | 69 |
| 69 setDataAndUpdate(newStr, m_data.length(), 0, data.length(), UpdateFromParser); | 70 setDataAndUpdate(newStr, m_data.length(), 0, data.length(), UpdateFromParser); |
| 70 } | 71 } |
| 71 | 72 |
| 72 void CharacterData::appendData(const String& data) { | 73 void CharacterData::appendData(const String& data) { |
| 73 String newStr = m_data + data; | 74 String newStr = m_data + data; |
| 74 | 75 |
| 75 setDataAndUpdate(newStr, m_data.length(), 0, data.length(), | 76 setDataAndUpdate(newStr, m_data.length(), 0, data.length(), |
| 76 UpdateFromNonParser); | 77 UpdateFromNonParser); |
| 77 | 78 |
| 78 // FIXME: Should we call textInserted here? | 79 // FIXME: Should we call textInserted here? |
| 79 } | 80 } |
| 80 | 81 |
| 81 void CharacterData::insertData(unsigned offset, | 82 void CharacterData::insertData(unsigned offset, |
| 82 const String& data, | 83 const String& data, |
| 83 ExceptionState& exceptionState) { | 84 ExceptionState& exceptionState) { |
| 84 if (offset > length()) { | 85 if (offset > length()) { |
| 85 exceptionState.throwDOMException( | 86 exceptionState.throwDOMException( |
| 86 IndexSizeError, "The offset " + String::number(offset) + | 87 IndexSizeError, |
| 87 " is greater than the node's length (" + | 88 "The offset " + String::number(offset) + |
| 88 String::number(length()) + ")."); | 89 " is greater than the node's length (" + String::number(length()) + |
| 90 ")."); |
| 89 return; | 91 return; |
| 90 } | 92 } |
| 91 | 93 |
| 92 String newStr = m_data; | 94 String newStr = m_data; |
| 93 newStr.insert(data, offset); | 95 newStr.insert(data, offset); |
| 94 | 96 |
| 95 setDataAndUpdate(newStr, offset, 0, data.length(), UpdateFromNonParser); | 97 setDataAndUpdate(newStr, offset, 0, data.length(), UpdateFromNonParser); |
| 96 | 98 |
| 97 document().didInsertText(this, offset, data.length()); | 99 document().didInsertText(this, offset, data.length()); |
| 98 } | 100 } |
| 99 | 101 |
| 100 static bool validateOffsetCount(unsigned offset, | 102 static bool validateOffsetCount(unsigned offset, |
| 101 unsigned count, | 103 unsigned count, |
| 102 unsigned length, | 104 unsigned length, |
| 103 unsigned& realCount, | 105 unsigned& realCount, |
| 104 ExceptionState& exceptionState) { | 106 ExceptionState& exceptionState) { |
| 105 if (offset > length) { | 107 if (offset > length) { |
| 106 exceptionState.throwDOMException( | 108 exceptionState.throwDOMException( |
| 107 IndexSizeError, "The offset " + String::number(offset) + | 109 IndexSizeError, |
| 108 " is greater than the node's length (" + | 110 "The offset " + String::number(offset) + |
| 109 String::number(length) + ")."); | 111 " is greater than the node's length (" + String::number(length) + |
| 112 ")."); |
| 110 return false; | 113 return false; |
| 111 } | 114 } |
| 112 | 115 |
| 113 CheckedNumeric<unsigned> offsetCount = offset; | 116 CheckedNumeric<unsigned> offsetCount = offset; |
| 114 offsetCount += count; | 117 offsetCount += count; |
| 115 | 118 |
| 116 if (!offsetCount.IsValid() || offset + count > length) | 119 if (!offsetCount.IsValid() || offset + count > length) |
| 117 realCount = length - offset; | 120 realCount = length - offset; |
| 118 else | 121 else |
| 119 realCount = count; | 122 realCount = count; |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 dispatchSubtreeModifiedEvent(); | 219 dispatchSubtreeModifiedEvent(); |
| 217 } | 220 } |
| 218 InspectorInstrumentation::characterDataModified(this); | 221 InspectorInstrumentation::characterDataModified(this); |
| 219 } | 222 } |
| 220 | 223 |
| 221 int CharacterData::maxCharacterOffset() const { | 224 int CharacterData::maxCharacterOffset() const { |
| 222 return static_cast<int>(length()); | 225 return static_cast<int>(length()); |
| 223 } | 226 } |
| 224 | 227 |
| 225 } // namespace blink | 228 } // namespace blink |
| OLD | NEW |