comparison src/share/vm/graal/graalVMEntries.cpp @ 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 6aef50c6d967
children 56c8f567dfb6
comparison
equal deleted inserted replaced
3654:4123781869da 3655:2a0cb564e470
546 LinkResolver::resolve_field(result, cp, index, 546 LinkResolver::resolve_field(result, cp, index,
547 Bytecodes::java_code(code), 547 Bytecodes::java_code(code),
548 true, false, Thread::current()); 548 true, false, Thread::current());
549 if (HAS_PENDING_EXCEPTION) { 549 if (HAS_PENDING_EXCEPTION) {
550 CLEAR_PENDING_EXCEPTION; 550 CLEAR_PENDING_EXCEPTION;
551 } 551 } else {
552 offset = result.field_offset(); 552 offset = result.field_offset();
553 flags = result.access_flags(); 553 flags = result.access_flags();
554 holder_klass = result.klass()->as_klassOop(); 554 holder_klass = result.klass()->as_klassOop();
555 basic_type = result.field_type(); 555 basic_type = result.field_type();
556 holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL); 556 holder = GraalCompiler::get_RiType(holder_klass, CHECK_NULL);
557 }
557 } 558 }
558 559
559 Handle type = GraalCompiler::get_RiTypeFromSignature(cp, sig_index, cp->pool_holder(), CHECK_NULL); 560 Handle type = GraalCompiler::get_RiTypeFromSignature(cp, sig_index, cp->pool_holder(), CHECK_NULL);
560 Handle field_handle = GraalCompiler::get_RiField(offset, flags.as_int(), name, holder, type, code, THREAD); 561 Handle field_handle = GraalCompiler::get_RiField(offset, flags.as_int(), name, holder, type, code, THREAD);
561 562