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

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

Issue 19804005: 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
« no previous file with comments | « Source/core/css/CSSSelector.h ('k') | Source/core/css/MediaQueryEvaluator.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) 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 16 matching lines...) Expand all
27 #include "core/css/CSSSelector.h" 27 #include "core/css/CSSSelector.h"
28 28
29 #include "HTMLNames.h" 29 #include "HTMLNames.h"
30 #include "RuntimeEnabledFeatures.h" 30 #include "RuntimeEnabledFeatures.h"
31 #include "core/css/CSSOMUtils.h" 31 #include "core/css/CSSOMUtils.h"
32 #include "core/css/CSSSelectorList.h" 32 #include "core/css/CSSSelectorList.h"
33 #include "wtf/Assertions.h" 33 #include "wtf/Assertions.h"
34 #include "wtf/HashMap.h" 34 #include "wtf/HashMap.h"
35 #include "wtf/StdLibExtras.h" 35 #include "wtf/StdLibExtras.h"
36 #include "wtf/text/StringBuilder.h" 36 #include "wtf/text/StringBuilder.h"
37 #include "wtf/text/StringHash.h"
37 38
38 namespace WebCore { 39 namespace WebCore {
39 40
40 using namespace HTMLNames; 41 using namespace HTMLNames;
41 42
42 struct SameSizeAsCSSSelector { 43 struct SameSizeAsCSSSelector {
43 unsigned bitfields; 44 unsigned bitfields;
44 void *pointers[1]; 45 void *pointers[1];
45 }; 46 };
46 47
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 return NOPSEUDO; 251 return NOPSEUDO;
251 case PseudoNotParsed: 252 case PseudoNotParsed:
252 ASSERT_NOT_REACHED(); 253 ASSERT_NOT_REACHED();
253 return NOPSEUDO; 254 return NOPSEUDO;
254 } 255 }
255 256
256 ASSERT_NOT_REACHED(); 257 ASSERT_NOT_REACHED();
257 return NOPSEUDO; 258 return NOPSEUDO;
258 } 259 }
259 260
260 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap( ) 261 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoTypeMap()
261 { 262 {
262 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct FromLiteral)); 263 DEFINE_STATIC_LOCAL(AtomicString, active, ("active", AtomicString::Construct FromLiteral));
263 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr omLiteral)); 264 DEFINE_STATIC_LOCAL(AtomicString, after, ("after", AtomicString::ConstructFr omLiteral));
264 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr uctFromLiteral)); 265 DEFINE_STATIC_LOCAL(AtomicString, any, ("-webkit-any(", AtomicString::Constr uctFromLiteral));
265 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString ::ConstructFromLiteral)); 266 DEFINE_STATIC_LOCAL(AtomicString, anyLink, ("-webkit-any-link", AtomicString ::ConstructFromLiteral));
266 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin g::ConstructFromLiteral)); 267 DEFINE_STATIC_LOCAL(AtomicString, autofill, ("-webkit-autofill", AtomicStrin g::ConstructFromLiteral));
267 DEFINE_STATIC_LOCAL(AtomicString, backdrop, ("backdrop", AtomicString::Const ructFromLiteral)); 268 DEFINE_STATIC_LOCAL(AtomicString, backdrop, ("backdrop", AtomicString::Const ructFromLiteral));
268 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct FromLiteral)); 269 DEFINE_STATIC_LOCAL(AtomicString, before, ("before", AtomicString::Construct FromLiteral));
269 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru ctFromLiteral)); 270 DEFINE_STATIC_LOCAL(AtomicString, checked, ("checked", AtomicString::Constru ctFromLiteral));
270 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C onstructFromLiteral)); 271 DEFINE_STATIC_LOCAL(AtomicString, defaultString, ("default", AtomicString::C onstructFromLiteral));
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL iteral)); 331 DEFINE_STATIC_LOCAL(AtomicString, cue, ("cue(", AtomicString::ConstructFromL iteral));
331 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr uctFromLiteral)); 332 DEFINE_STATIC_LOCAL(AtomicString, futureCue, ("future", AtomicString::Constr uctFromLiteral));
332 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF romLiteral)); 333 DEFINE_STATIC_LOCAL(AtomicString, pastCue, ("past", AtomicString::ConstructF romLiteral));
333 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum ent", AtomicString::ConstructFromLiteral)); 334 DEFINE_STATIC_LOCAL(AtomicString, seamlessDocument, ("-webkit-seamless-docum ent", AtomicString::ConstructFromLiteral));
334 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom icString::ConstructFromLiteral)); 335 DEFINE_STATIC_LOCAL(AtomicString, distributed, ("-webkit-distributed(", Atom icString::ConstructFromLiteral));
335 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr uctFromLiteral)); 336 DEFINE_STATIC_LOCAL(AtomicString, inRange, ("in-range", AtomicString::Constr uctFromLiteral));
336 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString: :ConstructFromLiteral)); 337 DEFINE_STATIC_LOCAL(AtomicString, outOfRange, ("out-of-range", AtomicString: :ConstructFromLiteral));
337 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr omLiteral)); 338 DEFINE_STATIC_LOCAL(AtomicString, scope, ("scope", AtomicString::ConstructFr omLiteral));
338 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C onstructFromLiteral)); 339 DEFINE_STATIC_LOCAL(AtomicString, unresolved, ("unresolved", AtomicString::C onstructFromLiteral));
339 340
340 static HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0; 341 static HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = 0;
341 if (!nameToPseudoType) { 342 if (!nameToPseudoType) {
342 nameToPseudoType = new HashMap<AtomicStringImpl*, CSSSelector::PseudoTyp e>; 343 nameToPseudoType = new HashMap<StringImpl*, CSSSelector::PseudoType>;
343 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive); 344 nameToPseudoType->set(active.impl(), CSSSelector::PseudoActive);
344 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter); 345 nameToPseudoType->set(after.impl(), CSSSelector::PseudoAfter);
345 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink); 346 nameToPseudoType->set(anyLink.impl(), CSSSelector::PseudoAnyLink);
346 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny); 347 nameToPseudoType->set(any.impl(), CSSSelector::PseudoAny);
347 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill); 348 nameToPseudoType->set(autofill.impl(), CSSSelector::PseudoAutofill);
348 nameToPseudoType->set(backdrop.impl(), CSSSelector::PseudoBackdrop); 349 nameToPseudoType->set(backdrop.impl(), CSSSelector::PseudoBackdrop);
349 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore); 350 nameToPseudoType->set(before.impl(), CSSSelector::PseudoBefore);
350 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked); 351 nameToPseudoType->set(checked.impl(), CSSSelector::PseudoChecked);
351 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault); 352 nameToPseudoType->set(defaultString.impl(), CSSSelector::PseudoDefault);
352 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled); 353 nameToPseudoType->set(disabled.impl(), CSSSelector::PseudoDisabled);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 if (RuntimeEnabledFeatures::customDOMElementsEnabled()) 419 if (RuntimeEnabledFeatures::customDOMElementsEnabled())
419 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv ed); 420 nameToPseudoType->set(unresolved.impl(), CSSSelector::PseudoUnresolv ed);
420 } 421 }
421 return nameToPseudoType; 422 return nameToPseudoType;
422 } 423 }
423 424
424 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name) 425 CSSSelector::PseudoType CSSSelector::parsePseudoType(const AtomicString& name)
425 { 426 {
426 if (name.isNull()) 427 if (name.isNull())
427 return PseudoUnknown; 428 return PseudoUnknown;
428 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>* nameToPseudoType = name ToPseudoTypeMap(); 429 HashMap<StringImpl*, CSSSelector::PseudoType>* nameToPseudoType = nameToPseu doTypeMap();
429 HashMap<AtomicStringImpl*, CSSSelector::PseudoType>::iterator slot = nameToP seudoType->find(name.impl()); 430 HashMap<StringImpl*, CSSSelector::PseudoType>::iterator slot = nameToPseudoT ype->find(name.impl());
430 431
431 if (slot != nameToPseudoType->end()) 432 if (slot != nameToPseudoType->end())
432 return slot->value; 433 return slot->value;
433 434
434 if (name.startsWith("-webkit-")) 435 if (name.startsWith("-webkit-"))
435 return PseudoWebKitCustomElement; 436 return PseudoWebKitCustomElement;
436 if (name.startsWith("x-") || name.startsWith("cue")) 437 if (name.startsWith("x-") || name.startsWith("cue"))
437 return PseudoUserAgentCustomElement; 438 return PseudoUserAgentCustomElement;
438 439
439 return PseudoUnknown; 440 return PseudoUnknown;
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 m_parsedNth = m_data.m_rareData->parseNth(); 731 m_parsedNth = m_data.m_rareData->parseNth();
731 return m_parsedNth; 732 return m_parsedNth;
732 } 733 }
733 734
734 bool CSSSelector::matchNth(int count) const 735 bool CSSSelector::matchNth(int count) const
735 { 736 {
736 ASSERT(m_hasRareData); 737 ASSERT(m_hasRareData);
737 return m_data.m_rareData->matchNth(count); 738 return m_data.m_rareData->matchNth(count);
738 } 739 }
739 740
740 CSSSelector::RareData::RareData(PassRefPtr<AtomicStringImpl> value) 741 CSSSelector::RareData::RareData(PassRefPtr<StringImpl> value)
741 : m_value(value.leakRef()) 742 : m_value(value.leakRef())
742 , m_a(0) 743 , m_a(0)
743 , m_b(0) 744 , m_b(0)
744 , m_attribute(anyQName()) 745 , m_attribute(anyQName())
745 , m_argument(nullAtom) 746 , m_argument(nullAtom)
746 { 747 {
747 } 748 }
748 749
749 CSSSelector::RareData::~RareData() 750 CSSSelector::RareData::~RareData()
750 { 751 {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 return false; 806 return false;
806 return (count - m_b) % m_a == 0; 807 return (count - m_b) % m_a == 0;
807 } else { 808 } else {
808 if (count > m_b) 809 if (count > m_b)
809 return false; 810 return false;
810 return (m_b - count) % (-m_a) == 0; 811 return (m_b - count) % (-m_a) == 0;
811 } 812 }
812 } 813 }
813 814
814 } // namespace WebCore 815 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/core/css/CSSSelector.h ('k') | Source/core/css/MediaQueryEvaluator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698