Mercurial > hg > graal-compiler
changeset 14985:cceed4ebedb9
Truffle: fixed NPE in the TruffleExpansionLogger.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Sat, 05 Apr 2014 03:18:48 +0200 |
parents | a5bebb69dc78 |
children | bb7e5331280d |
files | graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java |
diffstat | 1 files changed, 9 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java Sat Apr 05 03:18:48 2014 +0200 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleExpansionLogger.java Sat Apr 05 03:18:48 2014 +0200 @@ -48,15 +48,17 @@ int sourceMethodBci = callTarget.invoke().bci(); ResolvedJavaMethod targetMethod = callTarget.targetMethod(); Object targetReceiver = null; - if (!Modifier.isStatic(sourceMethod.getModifiers())) { - targetReceiver = callTarget.arguments().first().asConstant().asObject(); + if (!Modifier.isStatic(sourceMethod.getModifiers()) && callTarget.receiver().isConstant()) { + targetReceiver = callTarget.receiver().asConstant().asObject(); } - ExpansionTree parent = callToParentTree.get(callTarget); - assert parent != null; - callToParentTree.remove(callTarget); - ExpansionTree tree = new ExpansionTree(parent, targetReceiver, targetMethod, sourceMethodBci); - registerParentInCalls(tree, inliningGraph); + if (targetReceiver != null) { + ExpansionTree parent = callToParentTree.get(callTarget); + assert parent != null; + callToParentTree.remove(callTarget); + ExpansionTree tree = new ExpansionTree(parent, targetReceiver, targetMethod, sourceMethodBci); + registerParentInCalls(tree, inliningGraph); + } } @SuppressWarnings("unchecked")