@@ -395,25 +395,21 @@ public void addElementSelector(final ElementSelector elementSelector,
395395
396396 public void addClassSelector (final ElementSelector elementSelector , final String className ,
397397 final Selector s , final CSSStyleRuleImpl styleRule ) {
398- List <SelectorEntry > entries = classSelectors_ .get (className );
398+ final String elementName = elementSelector .getLocalName ();
399+ final String key ;
400+ if (elementName == null ) {
401+ key = "." + className ;
402+ }
403+ else {
404+ key = elementName + "." + className ;
405+ }
406+ List <SelectorEntry > entries = classSelectors_ .get (key );
399407 if (entries == null ) {
400408 entries = new ArrayList <SelectorEntry >();
401- classSelectors_ .put (className , entries );
409+ classSelectors_ .put (key , entries );
402410 }
403- SelectorEntry selectorEntry = new SelectorEntry (s , styleRule );
411+ final SelectorEntry selectorEntry = new SelectorEntry (s , styleRule );
404412 entries .add (selectorEntry );
405-
406- final String elementName = elementSelector .getLocalName ();
407- if (elementName != null ) {
408- final String key = elementName + "." + className ;
409- entries = classSelectors_ .get (key );
410- if (entries == null ) {
411- entries = new ArrayList <SelectorEntry >();
412- classSelectors_ .put (key , entries );
413- }
414- selectorEntry = new SelectorEntry (s , styleRule );
415- entries .add (selectorEntry );
416- }
417413 }
418414
419415 public void addOtherSelector (final Selector s , final CSSStyleRuleImpl styleRule ) {
@@ -456,7 +452,7 @@ static final class SelectorEntriesIterator implements Iterator<SelectorEntry> {
456452 final String elementName , final String [] classes ) {
457453 iterators_ = new LinkedList <Iterator <SelectorEntry >>();
458454
459- List <SelectorEntry > sel = index .elementSelectors_ .get ("*" );
455+ List <SelectorEntry > sel = index .elementSelectors_ .get (null );
460456 if (sel != null && !sel .isEmpty ()) {
461457 iterators_ .add (sel .iterator ());
462458 }
@@ -467,14 +463,16 @@ static final class SelectorEntriesIterator implements Iterator<SelectorEntry> {
467463
468464 if (classes != null ) {
469465 for (String clazz : classes ) {
470- sel = index .classSelectors_ .get (clazz );
466+ sel = index .classSelectors_ .get ("." + clazz );
471467 if (sel != null && !sel .isEmpty ()) {
472468 iterators_ .add (sel .iterator ());
473469 }
474470
475- sel = index .classSelectors_ .get (elementName + "." + clazz );
476- if (sel != null && !sel .isEmpty ()) {
477- iterators_ .add (sel .iterator ());
471+ if (elementName != null ) {
472+ sel = index .classSelectors_ .get (elementName + "." + clazz );
473+ if (sel != null && !sel .isEmpty ()) {
474+ iterators_ .add (sel .iterator ());
475+ }
478476 }
479477 }
480478 }
0 commit comments