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

Side by Side Diff: Source/wtf/text/AtomicString.cpp

Issue 170603003: Use nullptr_t for RefPtr, PassRefPtr and RawPtr. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Final rebase Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « Source/wtf/TypedArrayBase.h ('k') | Source/wtf/text/AtomicStringCF.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2013 Apple Inc. All rights reserv ed.
3 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> 3 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
4 * Copyright (C) 2012 Google Inc. All rights reserved. 4 * Copyright (C) 2012 Google Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
135 { 135 {
136 location = StringImpl::create(c).leakRef(); 136 location = StringImpl::create(c).leakRef();
137 location->setHash(hash); 137 location->setHash(hash);
138 location->setIsAtomic(true); 138 location->setIsAtomic(true);
139 } 139 }
140 }; 140 };
141 141
142 PassRefPtr<StringImpl> AtomicString::add(const LChar* c) 142 PassRefPtr<StringImpl> AtomicString::add(const LChar* c)
143 { 143 {
144 if (!c) 144 if (!c)
145 return 0; 145 return nullptr;
146 if (!*c) 146 if (!*c)
147 return StringImpl::empty(); 147 return StringImpl::empty();
148 148
149 return addToStringTable<const LChar*, CStringTranslator>(c); 149 return addToStringTable<const LChar*, CStringTranslator>(c);
150 } 150 }
151 151
152 template<typename CharacterType> 152 template<typename CharacterType>
153 struct HashTranslatorCharBuffer { 153 struct HashTranslatorCharBuffer {
154 const CharacterType* s; 154 const CharacterType* s;
155 unsigned length; 155 unsigned length;
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 269
270 location = newString.release().leakRef(); 270 location = newString.release().leakRef();
271 location->setHash(hash); 271 location->setHash(hash);
272 location->setIsAtomic(true); 272 location->setIsAtomic(true);
273 } 273 }
274 }; 274 };
275 275
276 PassRefPtr<StringImpl> AtomicString::add(const UChar* s, unsigned length) 276 PassRefPtr<StringImpl> AtomicString::add(const UChar* s, unsigned length)
277 { 277 {
278 if (!s) 278 if (!s)
279 return 0; 279 return nullptr;
280 280
281 if (!length) 281 if (!length)
282 return StringImpl::empty(); 282 return StringImpl::empty();
283 283
284 UCharBuffer buffer = { s, length }; 284 UCharBuffer buffer = { s, length };
285 return addToStringTable<UCharBuffer, UCharBufferTranslator>(buffer); 285 return addToStringTable<UCharBuffer, UCharBufferTranslator>(buffer);
286 } 286 }
287 287
288 PassRefPtr<StringImpl> AtomicString::add(const UChar* s, unsigned length, unsign ed existingHash) 288 PassRefPtr<StringImpl> AtomicString::add(const UChar* s, unsigned length, unsign ed existingHash)
289 { 289 {
290 ASSERT(s); 290 ASSERT(s);
291 ASSERT(existingHash); 291 ASSERT(existingHash);
292 292
293 if (!length) 293 if (!length)
294 return StringImpl::empty(); 294 return StringImpl::empty();
295 295
296 HashAndCharacters<UChar> buffer = { existingHash, s, length }; 296 HashAndCharacters<UChar> buffer = { existingHash, s, length };
297 return addToStringTable<HashAndCharacters<UChar>, HashAndCharactersTranslato r<UChar> >(buffer); 297 return addToStringTable<HashAndCharacters<UChar>, HashAndCharactersTranslato r<UChar> >(buffer);
298 } 298 }
299 299
300 PassRefPtr<StringImpl> AtomicString::add(const UChar* s) 300 PassRefPtr<StringImpl> AtomicString::add(const UChar* s)
301 { 301 {
302 if (!s) 302 if (!s)
303 return 0; 303 return nullptr;
304 304
305 unsigned length = 0; 305 unsigned length = 0;
306 while (s[length] != UChar(0)) 306 while (s[length] != UChar(0))
307 ++length; 307 ++length;
308 308
309 if (!length) 309 if (!length)
310 return StringImpl::empty(); 310 return StringImpl::empty();
311 311
312 UCharBuffer buffer = { s, length }; 312 UCharBuffer buffer = { s, length };
313 return addToStringTable<UCharBuffer, UCharBufferTranslator>(buffer); 313 return addToStringTable<UCharBuffer, UCharBufferTranslator>(buffer);
(...skipping 24 matching lines...) Expand all
338 { 338 {
339 location = buffer.baseString->substring(buffer.start, buffer.length).lea kRef(); 339 location = buffer.baseString->substring(buffer.start, buffer.length).lea kRef();
340 location->setHash(hash); 340 location->setHash(hash);
341 location->setIsAtomic(true); 341 location->setIsAtomic(true);
342 } 342 }
343 }; 343 };
344 344
345 PassRefPtr<StringImpl> AtomicString::add(StringImpl* baseString, unsigned start, unsigned length) 345 PassRefPtr<StringImpl> AtomicString::add(StringImpl* baseString, unsigned start, unsigned length)
346 { 346 {
347 if (!baseString) 347 if (!baseString)
348 return 0; 348 return nullptr;
349 349
350 if (!length || start >= baseString->length()) 350 if (!length || start >= baseString->length())
351 return StringImpl::empty(); 351 return StringImpl::empty();
352 352
353 unsigned maxLength = baseString->length() - start; 353 unsigned maxLength = baseString->length() - start;
354 if (length >= maxLength) { 354 if (length >= maxLength) {
355 if (!start) 355 if (!start)
356 return add(baseString); 356 return add(baseString);
357 length = maxLength; 357 length = maxLength;
358 } 358 }
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 { 397 {
398 location = StringImpl::create(buf.s, buf.length).leakRef(); 398 location = StringImpl::create(buf.s, buf.length).leakRef();
399 location->setHash(hash); 399 location->setHash(hash);
400 location->setIsAtomic(true); 400 location->setIsAtomic(true);
401 } 401 }
402 }; 402 };
403 403
404 PassRefPtr<StringImpl> AtomicString::add(const LChar* s, unsigned length) 404 PassRefPtr<StringImpl> AtomicString::add(const LChar* s, unsigned length)
405 { 405 {
406 if (!s) 406 if (!s)
407 return 0; 407 return nullptr;
408 408
409 if (!length) 409 if (!length)
410 return StringImpl::empty(); 410 return StringImpl::empty();
411 411
412 LCharBuffer buffer = { s, length }; 412 LCharBuffer buffer = { s, length };
413 return addToStringTable<LCharBuffer, LCharBufferTranslator>(buffer); 413 return addToStringTable<LCharBuffer, LCharBufferTranslator>(buffer);
414 } 414 }
415 415
416 PassRefPtr<StringImpl> AtomicString::addFromLiteralData(const char* characters, unsigned length) 416 PassRefPtr<StringImpl> AtomicString::addFromLiteralData(const char* characters, unsigned length)
417 { 417 {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
526 } 526 }
527 527
528 #ifndef NDEBUG 528 #ifndef NDEBUG
529 void AtomicString::show() const 529 void AtomicString::show() const
530 { 530 {
531 m_string.show(); 531 m_string.show();
532 } 532 }
533 #endif 533 #endif
534 534
535 } // namespace WTF 535 } // namespace WTF
OLDNEW
« no previous file with comments | « Source/wtf/TypedArrayBase.h ('k') | Source/wtf/text/AtomicStringCF.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698