Ticket #24188: josm_24188.patch

File josm_24188.patch, 1.3 KB (added by gaben, 10 months ago)

this seem to work correctly, but has a bit worse performance, only 2.3x speedup

  • src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java

     
    368368
    369369                    if (!suitable && preset.types.contains(TaggingPresetType.RELATION)
    370370                            && preset.roles != null && !preset.roles.roles.isEmpty()) {
    371                         suitable = preset.roles.roles.stream().anyMatch(
    372                                 object -> object.memberExpression != null && selectedPrimitives.stream().anyMatch(object.memberExpression));
     371                        suitable = preset.roles.roles.stream()
     372                                .filter(role -> role.memberExpression != null)
     373                                .anyMatch(role -> selectedPrimitives.stream().parallel()
     374                                        .anyMatch(p -> role.types.contains(TaggingPresetType.forPrimitive(p))
     375                                                && role.memberExpression.match(p)));
    373376                        // keep the preset to allow the creation of new relations
    374377                    }
    375378                    if (!suitable) {