aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax
diff options
context:
space:
mode:
authorGravatar Florian Weikert <fwe@google.com>2015-11-09 21:33:26 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-11-10 10:28:23 +0000
commit6edbf3b3fd0a6f2f49e08f74785571d4ff61185e (patch)
tree0f4b2ae3fc91538c599eb305b6a78799a41e2010 /src/main/java/com/google/devtools/build/lib/syntax
parent3bde7d9519b9e6b2a4212210219cf57df56e540e (diff)
Add profiler support for compiled Skylark.
-- MOS_MIGRATED_REVID=107416625
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java3
2 files changed, 8 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
index 4bc35865a4..76e8ba0243 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/DotExpression.java
@@ -67,7 +67,7 @@ public final class DotExpression extends Expression {
* Throws the correct error message if the result is null depending on the objValue.
*/
public static Object checkResult(Object objValue, Object result, String name, Location loc)
- throws EvalException {
+ throws EvalException {
if (result == null) {
if (objValue instanceof ClassObject) {
String customErrorMessage = ((ClassObject) objValue).errorMessage(name);
@@ -75,8 +75,10 @@ public final class DotExpression extends Expression {
throw new EvalException(loc, customErrorMessage);
}
}
- throw new EvalException(loc, Printer.format("Object of type '%s' has no field %r",
- EvalUtils.getDataTypeName(objValue), name));
+ throw new EvalException(
+ loc,
+ Printer.format(
+ "Object of type '%s' has no field %r", EvalUtils.getDataTypeName(objValue), name));
}
return result;
}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java b/src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java
index cb6691c433..365681eca0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/UserDefinedFunction.java
@@ -153,6 +153,8 @@ public class UserDefinedFunction extends BaseFunction {
private Object callCompiledFunction(Object[] arguments, FuncallExpression ast, Environment env) {
compilerDebug("Calling compiled function " + getLocationPathAndLine() + " " + getName());
try {
+ Profiler.instance().startTask(ProfilerTask.SKYLARK_USER_COMPILED_FN,
+ getLocationPathAndLine() + "#" + getName());
env.enterScope(this, ast, definitionGlobals);
return method
@@ -167,6 +169,7 @@ public class UserDefinedFunction extends BaseFunction {
compilerDebug("Error running compiled version", e.getCause());
return null;
} finally {
+ Profiler.instance().completeTask(ProfilerTask.SKYLARK_USER_COMPILED_FN);
env.exitScope();
}
}