NPE when showing truffle expansions

Stefan Marr java at stefan-marr.de
Tue Jun 10 15:07:14 UTC 2014


Hi:

There seems to be an issue with static methods, apparently, the current check in place is not sufficient to guard for non-existing receivers.
The following patch seems to help:

diff --git a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java
index e90fb56..5dec542 100644
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java
+++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java
@@ -50,7 +50,9 @@ public class TruffleExpansionLogger {
         int sourceMethodBci = callTarget.invoke().bci();
         ResolvedJavaMethod targetMethod = callTarget.targetMethod();
         ResolvedJavaType targetReceiverType = null;
-        if (!sourceMethod.isStatic() && callTarget.receiver().isConstant()) {
+
+        boolean isStatic = sourceMethod.isStatic() || callTarget.isStatic();
+        if (!isStatic && callTarget.receiver().isConstant()) {
             targetReceiverType = providers.getMetaAccess().lookupJavaType(callTarget.arguments().first().asConstant());
         }
 

Best regards
Stefan

-- 
Stefan Marr
INRIA Lille - Nord Europe
http://stefan-marr.de/research/





More information about the graal-dev mailing list