changeset 5250:0f6f647e8a96

bug fix: can only use HotSpot code for constructing a StackTraceElement when the bci is valid
author Doug Simon <doug.simon@oracle.com>
date Wed, 18 Apr 2012 23:19:58 +0200
parents 2d26d5ca2e5b
children 467de393651a
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java	Wed Apr 18 17:56:53 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java	Wed Apr 18 23:19:58 2012 +0200
@@ -155,6 +155,11 @@
 
     @Override
     public StackTraceElement toStackTraceElement(int bci) {
+        if (bci < 0 || bci >= codeSize) {
+            // HotSpot code can only construct stack trace elements for valid bcis
+            StackTraceElement ste = compiler.getVMEntries().RiMethod_toStackTraceElement(this, 0);
+            return new StackTraceElement(ste.getClassName(), ste.getMethodName(), ste.getFileName(), -1);
+        }
         return compiler.getVMEntries().RiMethod_toStackTraceElement(this, bci);
     }