Ticket #13396: fasterSelector.patch

File fasterSelector.patch, 1.3 KB (added by GerdP, 5 years ago)
  • src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java

     
    151151
    152152                if (!left.matches(e.withPrimitive(w)))
    153153                    return;
     154
     155                if (link.conds == null) {
     156                    // index is not needed, we can avoid the sequential search below
     157                    e.parent = w;
     158                    e.count = w.getNodesCount();
     159                    return;
     160                }
    154161                for (int i = 0; i < w.getNodesCount(); i++) {
    155162                    Node n = w.getNode(i);
    156163                    if (n.equals(e.osm)) {
     
    174181
    175182                if (!left.matches(e.withPrimitive(r)))
    176183                    return;
     184                if (link.conds == null) {
     185                    // index is not needed, we can avoid the sequential search below
     186                    e.parent = r;
     187                    e.count = r.getMembersCount();
     188                    return;
     189                }
    177190                for (int i = 0; i < r.getMembersCount(); i++) {
    178191                    RelationMember m = r.getMember(i);
    179192                    if (m.getMember().equals(e.osm)) {