Changeset 17780 in josm for trunk/src/org


Ignore:
Timestamp:
2021-04-14T20:00:37+02:00 (5 years ago)
Author:
simon04
Message:

see #20744, fix #20764 - MapCSS: fix NPE

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java

    r17769 r17780  
    5656
    5757        static Factory ofNumberVarArgs(double identity, DoubleUnaryOperator unaryOperator, DoubleBinaryOperator operator) {
    58             return args -> env -> args.isEmpty()
    59                     ? identity
    60                     : args.size() == 1
    61                     ? unaryOperator.applyAsDouble(Cascade.convertTo(args.get(0).evaluate(env), Double.class))
    62                     : args.stream()
    63                     .map(arg -> Cascade.convertTo(arg.evaluate(env), Double.class))
    64                     .filter(Objects::nonNull)
    65                     .reduce(operator::applyAsDouble)
    66                     .orElse(null);
     58            return args -> env -> {
     59                if (args.isEmpty()) {
     60                    return identity;
     61                } else if (args.size() == 1) {
     62                    return unaryOperator.applyAsDouble(Cascade.convertTo(args.get(0).evaluate(env), Double.class));
     63                } else {
     64                    return args.stream()
     65                            .map(arg -> Cascade.convertTo(arg.evaluate(env), Double.class))
     66                            .filter(Objects::nonNull)
     67                            .reduce(operator::applyAsDouble).orElse(null);
     68                }
     69            };
    6770        }
    6871
Note: See TracChangeset for help on using the changeset viewer.