Skip to content

Commit b0ae15b

Browse files
committed
class selector fix
1 parent 2e9f0a4 commit b0ae15b

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

src/main/java/com/gargoylesoftware/css/dom/CSSStyleSheetImpl.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)