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

Side by Side Diff: Source/core/css/CSSSelector.cpp

Issue 18228003: Remove AtomicStringImpl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org)
3 * 1999 Waldo Bastian (bastian@kde.org) 3 * 1999 Waldo Bastian (bastian@kde.org)
4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch) 4 * 2001 Andreas Schlapbach (schlpbch@iam.unibe.ch)
5 * 2001-2003 Dirk Mueller (mueller@kde.org) 5 * 2001-2003 Dirk Mueller (mueller@kde.org)
6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com) 7 * Copyright (C) 2008 David Smith (catfish.man@gmail.com)
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 return NOPSEUDO; 248 return NOPSEUDO;
249 case PseudoNotParsed: 249 case PseudoNotParsed:
250 ASSERT_NOT_REACHED(); 250 ASSERT_NOT_REACHED();
251 return NOPSEUDO; 251 return NOPSEUDO;
252 } 252 }
253 253
254 ASSERT_NOT_REACHED(); 254 ASSERT_NOT_REACHED();
255 return NOPSEUDO; 255 return NOPSEUDO;
256 } 256 }
257 257
258 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap( ) 258 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap()
259 { 259 {
260 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct FromLiteral)); 260 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct FromLiteral));
261 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr omLiteral)); 261 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr omLiteral));
262 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr uctFromLiteral)); 262 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr uctFromLiteral));
263 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString ::ConstructFromLiteral)); 263 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString ::ConstructFromLiteral));
264 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin g::ConstructFromLiteral)); 264 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin g::ConstructFromLiteral));
265 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct FromLiteral)); 265 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct FromLiteral));
266 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru ctFromLiteral)); 266 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru ctFromLiteral));
267 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C onstructFromLiteral)); 267 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C onstructFromLiteral));
268 DEFINE_STATIC_LOCAL(AtomicString, disabled, ("disabled", AtomicString::Const ructFromLiteral)); 268 DEFINE_STATIC_LOCAL(AtomicString, disabled, ("disabled", AtomicString::Const ructFromLiteral));
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL iteral)); 327 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL iteral));
328 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr uctFromLiteral)); 328 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr uctFromLiteral));
329 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF romLiteral)); 329 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF romLiteral));
330 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum ent", AtomicString::ConstructFromLiteral)); 330 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum ent", AtomicString::ConstructFromLiteral));
331 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom icString::ConstructFromLiteral)); 331 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom icString::ConstructFromLiteral));
332 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr uctFromLiteral)); 332 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr uctFromLiteral));
333 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString: :ConstructFromLiteral)); 333 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString: :ConstructFromLiteral));
334 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr omLiteral)); 334 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr omLiteral));
335 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C onstructFromLiteral)); 335 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C onstructFromLiteral));
336 336
337 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0; 337 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0;
338 if (!nameToPseudoType) { 338 if (!nameToPseudoType) {
339 nameToPseudoType = new HashMap<AtomicStringImpl*, CSSSelector::PseudoTyp e>; 339 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>;
340 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive); 340 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive);
341 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter); 341 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter);
342 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink); 342 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink);
343 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny); 343 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny);
344 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill); 344 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill);
345 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore); 345 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore);
346 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked); 346 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked);
347 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault); 347 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault);
348 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled); 348 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled);
349 nameToPseudoType->set(readOnly.impl(), CSSSelector::PseudoReadOnly); 349 nameToPseudoType->set(readOnly.impl(), CSSSelector::PseudoReadOnly);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 if (RuntimeEnabledFeatures::customDOMElementsEnabled()) 414 if (RuntimeEnabledFeatures::customDOMElementsEnabled())
415 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv ed); 415 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv ed);
416 } 416 }
417 return nameToPseudoType; 417 return nameToPseudoType;
418 } 418 }
419 419
420 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name) 420 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name)
421 { 421 {
422 if (name.isNull()) 422 if (name.isNull())
423 return PseudoUnknown; 423 return PseudoUnknown;
424 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType = name ToPseudoTypeMap(); 424 HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = nameToPseu doTypeMap();
425 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>::iterator slot = nameToP seudoType->find(name.impl()); 425 HashMap<StringImpl*, CSSSelector::PseudoType>::iterator slot = nameToPseudoT ype->find(name.impl());
426 426
427 if (slot != nameToPseudoType->end()) 427 if (slot != nameToPseudoType->end())
428 return slot->value; 428 return slot->value;
429 429
430 if (name.startsWith("-webkit-")) 430 if (name.startsWith("-webkit-"))
431 return PseudoWebKitCustomElement; 431 return PseudoWebKitCustomElement;
432 if (name.startsWith("x-") || name.startsWith("cue")) 432 if (name.startsWith("x-") || name.startsWith("cue"))
433 return PseudoUserAgentCustomElement; 433 return PseudoUserAgentCustomElement;
434 434
435 return PseudoUnknown; 435 return PseudoUnknown;
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 m_parsedNth = m_data.m_rareData->parseNth(); 725 m_parsedNth = m_data.m_rareData->parseNth();
726 return m_parsedNth; 726 return m_parsedNth;
727 } 727 }
728 728
729 bool CSSSelector::matchNth(int count) const 729 bool CSSSelector::matchNth(int count) const
730 { 730 {
731 ASSERT(m_hasRareData); 731 ASSERT(m_hasRareData);
732 return m_data.m_rareData->matchNth(count); 732 return m_data.m_rareData->matchNth(count);
733 } 733 }
734 734
735 CSSSelector::RareData::RareData(PassRefPtr<AtomicStringImpl> value) 735 CSSSelector::RareData::RareData(PassRefPtr<StringImpl> value)
736 : m_value(value.leakRef()) 736 : m_value(value.leakRef())
737 , m_a(0) 737 , m_a(0)
738 , m_b(0) 738 , m_b(0)
739 , m_attribute(anyQName()) 739 , m_attribute(anyQName())
740 , m_argument(nullAtom) 740 , m_argument(nullAtom)
741 { 741 {
742 } 742 }
743 743
744 CSSSelector::RareData::~RareData() 744 CSSSelector::RareData::~RareData()
745 { 745 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 return false; 800 return false;
801 return (count - m_b) % m_a == 0; 801 return (count - m_b) % m_a == 0;
802 } else { 802 } else {
803 if (count > m_b) 803 if (count > m_b)
804 return false; 804 return false;
805 return (m_b - count) % (-m_a) == 0; 805 return (m_b - count) % (-m_a) == 0;
806 } 806 }
807 } 807 }
808 808
809 } // namespace WebCore 809 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698