changeset 3655:2a0cb564e470

Do not use result when resolve_field throws an exception.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 17 Nov 2011 00:52:17 +0100
parents 4123781869da
children 56c8f567dfb6 47edfca346ab
files src/share/vm/graal/graalVMEntries.cpp
diffstat 1 files changed, 6 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/graal/graalVMEntries.cpp	Thu Nov 17 00:28:31 2011 +0100
+++ b/src/share/vm/graal/graalVMEntries.cpp	Thu Nov 17 00:52:17 2011 +0100
@@ -548,12 +548,13 @@
                                 true, false, Thread::current());
     if (HAS_PENDING_EXCEPTION) {
       CLEAR_PENDING_EXCEPTION;
+    } else {
+      offset = result.field_offset();
+      flags = result.access_flags();
+      holder_klass = result.klass()->as_klassOop();
+      basic_type = result.field_type();
+      holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL);
     }
-    offset = result.field_offset();
-    flags = result.access_flags();
-    holder_klass = result.klass()->as_klassOop();
-    basic_type = result.field_type();
-    holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL);
   }
   
   Handle type = GraalCompiler::get_RiTypeFromSignature(cp, sig_index, cp->pool_holder(), CHECK_NULL);