Mercurial > hg > graal-compiler
changeset 23282:4ba737504681
Fix bug in error reporting for generated invocation plugins
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Fri, 08 Jan 2016 17:44:37 -0800 |
parents | a886e9dc3a47 |
children | c98de39fd944 |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/GeneratedInvocationPlugin.java |
diffstat | 1 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/GeneratedInvocationPlugin.java Fri Jan 08 13:12:43 2016 -0800 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/graphbuilderconf/GeneratedInvocationPlugin.java Fri Jan 08 17:44:37 2016 -0800 @@ -22,6 +22,10 @@ */ package com.oracle.graal.nodes.graphbuilderconf; +import java.lang.reflect.Method; + +import jdk.vm.ci.common.JVMCIError; +import jdk.vm.ci.meta.MetaAccessProvider; import jdk.vm.ci.meta.ResolvedJavaMethod; import com.oracle.graal.nodes.ValueNode; @@ -29,4 +33,15 @@ public abstract class GeneratedInvocationPlugin implements InvocationPlugin { public abstract boolean execute(GraphBuilderContext b, ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode[] args); + + @Override + public StackTraceElement getApplySourceLocation(MetaAccessProvider metaAccess) { + Class<?> c = getClass(); + for (Method m : c.getDeclaredMethods()) { + if (m.getName().equals("execute")) { + return metaAccess.lookupJavaMethod(m).asStackTraceElement(0); + } + } + throw new JVMCIError("could not find method named \"execute\" in " + c.getName()); + } }