From 03bd99d4a4a6ae51b45907fc4b8677eeafe1d6c8 Mon Sep 17 00:00:00 2001 From: Taras Tsugrii Date: Wed, 25 Jul 2018 14:09:04 -0700 Subject: [Perf] Remove unnecessary ImmutableMap.copyOf invocation. `keyWordArgs` is already `ImmutableMap` and `copyOf` contains enough overhead to show up on parse profiles. Closes #5651. PiperOrigin-RevId: 206051798 --- .../com/google/devtools/build/lib/syntax/FuncallExpression.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java index 6bd4c9e2e8..53b892dc37 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java @@ -836,16 +836,14 @@ public final class FuncallExpression extends Expression { : positionals.subList(1, positionals.size()); if (function != null) { - return function.call( - positionalArgs, ImmutableMap.copyOf(keyWordArgs), call, env); + return function.call(positionalArgs, keyWordArgs, call, env); } else if (fieldValue != null) { if (!(fieldValue instanceof BaseFunction)) { throw new EvalException( location, String.format("struct field '%s' is not a function", method)); } function = (BaseFunction) fieldValue; - return function.call( - positionalArgs, ImmutableMap.copyOf(keyWordArgs), call, env); + return function.call(positionalArgs, keyWordArgs, call, env); } else { // When calling a Java method, the name is not in the Environment, // so evaluating 'function' would fail. -- cgit v1.2.3