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

Side by Side Diff: Source/core/html/parser/HTMLParserIdioms.cpp

Issue 656723005: Use C++11 features in core/html (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: use nullptr Created 6 years, 1 month 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 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 Charset, 318 Charset,
319 Pragma, 319 Pragma,
320 }; 320 };
321 321
322 WTF::TextEncoding encodingFromMetaAttributes(const HTMLAttributeList& attributes ) 322 WTF::TextEncoding encodingFromMetaAttributes(const HTMLAttributeList& attributes )
323 { 323 {
324 bool gotPragma = false; 324 bool gotPragma = false;
325 Mode mode = None; 325 Mode mode = None;
326 String charset; 326 String charset;
327 327
328 for (HTMLAttributeList::const_iterator iter = attributes.begin(); iter != at tributes.end(); ++iter) { 328 for (const auto& htmlAttribute : attributes) {
329 const String& attributeName = iter->first; 329 const String& attributeName = htmlAttribute.first;
330 const String& attributeValue = AtomicString(iter->second); 330 const String& attributeValue = AtomicString(htmlAttribute.second);
331 331
332 if (threadSafeMatch(attributeName, http_equivAttr)) { 332 if (threadSafeMatch(attributeName, http_equivAttr)) {
333 if (equalIgnoringCase(attributeValue, "content-type")) 333 if (equalIgnoringCase(attributeValue, "content-type"))
334 gotPragma = true; 334 gotPragma = true;
335 } else if (charset.isEmpty()) { 335 } else if (charset.isEmpty()) {
336 if (threadSafeMatch(attributeName, charsetAttr)) { 336 if (threadSafeMatch(attributeName, charsetAttr)) {
337 charset = attributeValue; 337 charset = attributeValue;
338 mode = Charset; 338 mode = Charset;
339 } else if (threadSafeMatch(attributeName, contentAttr)) { 339 } else if (threadSafeMatch(attributeName, contentAttr)) {
340 charset = extractCharset(attributeValue); 340 charset = extractCharset(attributeValue);
(...skipping 26 matching lines...) Expand all
367 bool threadSafeMatch(const String& localName, const QualifiedName& qName) 367 bool threadSafeMatch(const String& localName, const QualifiedName& qName)
368 { 368 {
369 return threadSafeEqual(localName.impl(), qName.localName().impl()); 369 return threadSafeEqual(localName.impl(), qName.localName().impl());
370 } 370 }
371 371
372 template<typename CharType> 372 template<typename CharType>
373 inline StringImpl* findStringIfStatic(const CharType* characters, unsigned lengt h) 373 inline StringImpl* findStringIfStatic(const CharType* characters, unsigned lengt h)
374 { 374 {
375 // We don't need to try hashing if we know the string is too long. 375 // We don't need to try hashing if we know the string is too long.
376 if (length > StringImpl::highestStaticStringLength()) 376 if (length > StringImpl::highestStaticStringLength())
377 return 0; 377 return nullptr;
378 // computeHashAndMaskTop8Bits is the function StringImpl::hash() uses. 378 // computeHashAndMaskTop8Bits is the function StringImpl::hash() uses.
379 unsigned hash = StringHasher::computeHashAndMaskTop8Bits(characters, length) ; 379 unsigned hash = StringHasher::computeHashAndMaskTop8Bits(characters, length) ;
380 const WTF::StaticStringsTable& table = StringImpl::allStaticStrings(); 380 const WTF::StaticStringsTable& table = StringImpl::allStaticStrings();
381 ASSERT(!table.isEmpty()); 381 ASSERT(!table.isEmpty());
382 382
383 WTF::StaticStringsTable::const_iterator it = table.find(hash); 383 WTF::StaticStringsTable::const_iterator it = table.find(hash);
384 if (it == table.end()) 384 if (it == table.end())
385 return 0; 385 return nullptr;
386 // It's possible to have hash collisions between arbitrary strings and 386 // It's possible to have hash collisions between arbitrary strings and
387 // known identifiers (e.g. "bvvfg" collides with "script"). 387 // known identifiers (e.g. "bvvfg" collides with "script").
388 // However ASSERTs in StringImpl::createStatic guard against there ever bein g collisions 388 // However ASSERTs in StringImpl::createStatic guard against there ever bein g collisions
389 // between static strings. 389 // between static strings.
390 if (!equal(it->value, characters, length)) 390 if (!equal(it->value, characters, length))
391 return 0; 391 return nullptr;
392 return it->value; 392 return it->value;
393 } 393 }
394 394
395 String attemptStaticStringCreation(const LChar* characters, size_t size) 395 String attemptStaticStringCreation(const LChar* characters, size_t size)
396 { 396 {
397 String string(findStringIfStatic(characters, size)); 397 String string(findStringIfStatic(characters, size));
398 if (string.impl()) 398 if (string.impl())
399 return string; 399 return string;
400 return String(characters, size); 400 return String(characters, size);
401 } 401 }
402 402
403 String attemptStaticStringCreation(const UChar* characters, size_t size, Charact erWidth width) 403 String attemptStaticStringCreation(const UChar* characters, size_t size, Charact erWidth width)
404 { 404 {
405 String string(findStringIfStatic(characters, size)); 405 String string(findStringIfStatic(characters, size));
406 if (string.impl()) 406 if (string.impl())
407 return string; 407 return string;
408 if (width == Likely8Bit) 408 if (width == Likely8Bit)
409 string = StringImpl::create8BitIfPossible(characters, size); 409 string = StringImpl::create8BitIfPossible(characters, size);
410 else if (width == Force8Bit) 410 else if (width == Force8Bit)
411 string = String::make8BitFrom16BitSource(characters, size); 411 string = String::make8BitFrom16BitSource(characters, size);
412 else 412 else
413 string = String(characters, size); 413 string = String(characters, size);
414 414
415 return string; 415 return string;
416 } 416 }
417 417
418 } 418 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698