Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: third_party/WebKit/Source/wtf/text/StringBuilder.cpp

Issue 1373773002: Fix check-webkit-style errors in Source/wtf/text/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2012 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 // If the buffer has only one ref (by this StringBuilder), reallocate it, 163 // If the buffer has only one ref (by this StringBuilder), reallocate it,
164 // otherwise fall back to "allocate and copy" method. 164 // otherwise fall back to "allocate and copy" method.
165 m_string = String(); 165 m_string = String();
166 166
167 ASSERT(m_is8Bit); 167 ASSERT(m_is8Bit);
168 ASSERT(m_buffer->is8Bit()); 168 ASSERT(m_buffer->is8Bit());
169 169
170 if (m_buffer->hasOneRef()) { 170 if (m_buffer->hasOneRef()) {
171 m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength); 171 m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength);
172 m_bufferCharacters8 = const_cast<LChar*>(m_buffer->characters8()); 172 m_bufferCharacters8 = const_cast<LChar*>(m_buffer->characters8());
173 } else 173 } else {
174 allocateBuffer(m_buffer->characters8(), requiredLength); 174 allocateBuffer(m_buffer->characters8(), requiredLength);
175 }
175 } 176 }
176 177
177 template <> 178 template <>
178 void StringBuilder::reallocateBuffer<UChar>(unsigned requiredLength) 179 void StringBuilder::reallocateBuffer<UChar>(unsigned requiredLength)
179 { 180 {
180 // If the buffer has only one ref (by this StringBuilder), reallocate it, 181 // If the buffer has only one ref (by this StringBuilder), reallocate it,
181 // otherwise fall back to "allocate and copy" method. 182 // otherwise fall back to "allocate and copy" method.
182 m_string = String(); 183 m_string = String();
183 184
184 if (m_buffer->is8Bit()) { 185 if (m_buffer->is8Bit()) {
185 allocateBufferUpConvert(m_buffer->characters8(), requiredLength); 186 allocateBufferUpConvert(m_buffer->characters8(), requiredLength);
186 } else if (m_buffer->hasOneRef()) { 187 } else if (m_buffer->hasOneRef()) {
187 m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength); 188 m_buffer = StringImpl::reallocate(m_buffer.release(), requiredLength);
188 m_bufferCharacters16 = const_cast<UChar*>(m_buffer->characters16()); 189 m_bufferCharacters16 = const_cast<UChar*>(m_buffer->characters16());
189 } else 190 } else {
190 allocateBuffer(m_buffer->characters16(), requiredLength); 191 allocateBuffer(m_buffer->characters16(), requiredLength);
192 }
191 } 193 }
192 194
193 void StringBuilder::reserveCapacity(unsigned newCapacity) 195 void StringBuilder::reserveCapacity(unsigned newCapacity)
194 { 196 {
195 if (m_buffer) { 197 if (m_buffer) {
196 // If there is already a buffer, then grow if necessary. 198 // If there is already a buffer, then grow if necessary.
197 if (newCapacity > m_buffer->length()) { 199 if (newCapacity > m_buffer->length()) {
198 if (m_buffer->is8Bit()) 200 if (m_buffer->is8Bit())
199 reallocateBuffer<LChar>(newCapacity); 201 reallocateBuffer<LChar>(newCapacity);
200 else 202 else
201 reallocateBuffer<UChar>(newCapacity); 203 reallocateBuffer<UChar>(newCapacity);
202 } 204 }
203 } else { 205 } else {
204 // Grow the string, if necessary. 206 // Grow the string, if necessary.
205 if (newCapacity > m_length) { 207 if (newCapacity > m_length) {
206 if (!m_length) { 208 if (!m_length) {
207 LChar* nullPlaceholder = 0; 209 LChar* nullPlaceholder = 0;
208 allocateBuffer(nullPlaceholder, newCapacity); 210 allocateBuffer(nullPlaceholder, newCapacity);
209 } else if (m_string.is8Bit()) 211 } else if (m_string.is8Bit()) {
210 allocateBuffer(m_string.characters8(), newCapacity); 212 allocateBuffer(m_string.characters8(), newCapacity);
211 else 213 } else {
212 allocateBuffer(m_string.characters16(), newCapacity); 214 allocateBuffer(m_string.characters16(), newCapacity);
215 }
213 } 216 }
214 } 217 }
215 } 218 }
216 219
217 // Make 'length' additional capacity be available in m_buffer, update m_string & m_length, 220 // Make 'length' additional capacity be available in m_buffer, update m_string & m_length,
218 // return a pointer to the newly allocated storage. 221 // return a pointer to the newly allocated storage.
219 template <typename CharType> 222 template <typename CharType>
220 ALWAYS_INLINE CharType* StringBuilder::appendUninitialized(unsigned length) 223 ALWAYS_INLINE CharType* StringBuilder::appendUninitialized(unsigned length)
221 { 224 {
222 ASSERT(length); 225 ASSERT(length);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 ASSERT(m_buffer->length() >= m_length); 286 ASSERT(m_buffer->length() >= m_length);
284 287
285 allocateBufferUpConvert(m_buffer->characters8(), expandedCapacity(ca pacity(), requiredLength)); 288 allocateBufferUpConvert(m_buffer->characters8(), expandedCapacity(ca pacity(), requiredLength));
286 } else { 289 } else {
287 ASSERT(m_string.length() == m_length); 290 ASSERT(m_string.length() == m_length);
288 allocateBufferUpConvert(m_string.isNull() ? 0 : m_string.characters8 (), expandedCapacity(capacity(), requiredLength)); 291 allocateBufferUpConvert(m_string.isNull() ? 0 : m_string.characters8 (), expandedCapacity(capacity(), requiredLength));
289 } 292 }
290 293
291 memcpy(m_bufferCharacters16 + m_length, characters, static_cast<size_t>( length) * sizeof(UChar)); 294 memcpy(m_bufferCharacters16 + m_length, characters, static_cast<size_t>( length) * sizeof(UChar));
292 m_length = requiredLength; 295 m_length = requiredLength;
293 } else 296 } else {
294 memcpy(appendUninitialized<UChar>(length), characters, static_cast<size_ t>(length) * sizeof(UChar)); 297 memcpy(appendUninitialized<UChar>(length), characters, static_cast<size_ t>(length) * sizeof(UChar));
298 }
295 } 299 }
296 300
297 void StringBuilder::append(const LChar* characters, unsigned length) 301 void StringBuilder::append(const LChar* characters, unsigned length)
298 { 302 {
299 if (!length) 303 if (!length)
300 return; 304 return;
301 ASSERT(characters); 305 ASSERT(characters);
302 306
303 if (m_is8Bit) { 307 if (m_is8Bit) {
304 LChar* dest = appendUninitialized<LChar>(length); 308 LChar* dest = appendUninitialized<LChar>(length);
305 if (length > 8) 309 if (length > 8) {
306 memcpy(dest, characters, static_cast<size_t>(length) * sizeof(LChar) ); 310 memcpy(dest, characters, static_cast<size_t>(length) * sizeof(LChar) );
307 else { 311 } else {
308 const LChar* end = characters + length; 312 const LChar* end = characters + length;
309 while (characters < end) 313 while (characters < end)
310 *(dest++) = *(characters++); 314 *(dest++) = *(characters++);
311 } 315 }
312 } else { 316 } else {
313 UChar* dest = appendUninitialized<UChar>(length); 317 UChar* dest = appendUninitialized<UChar>(length);
314 const LChar* end = characters + length; 318 const LChar* end = characters + length;
315 while (characters < end) 319 while (characters < end)
316 *(dest++) = *(characters++); 320 *(dest++) = *(characters++);
317 } 321 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 if (!canShrink()) 391 if (!canShrink())
388 return; 392 return;
389 if (m_is8Bit) 393 if (m_is8Bit)
390 reallocateBuffer<LChar>(m_length); 394 reallocateBuffer<LChar>(m_length);
391 else 395 else
392 reallocateBuffer<UChar>(m_length); 396 reallocateBuffer<UChar>(m_length);
393 m_string = m_buffer.release(); 397 m_string = m_buffer.release();
394 } 398 }
395 399
396 } // namespace WTF 400 } // namespace WTF
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/text/StringBuilder.h ('k') | third_party/WebKit/Source/wtf/text/StringHash.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698