Mercurial > hg > graal-compiler
changeset 12165:59982ff9e0ec
8022283: Assertion failed: assert(is_loaded() && field->holder()->is_loaded() && klass()->is_subclass_of (field->holder())) failed: invalid access
Reviewed-by: roland, twisti
author | rbackman |
---|---|
date | Tue, 20 Aug 2013 09:37:01 +0200 |
parents | e1fbb86b47e4 |
children | 58e010ab2d06 |
files | src/share/vm/c1/c1_GraphBuilder.cpp src/share/vm/ci/ciInstance.cpp |
diffstat | 2 files changed, 5 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_GraphBuilder.cpp Mon Aug 26 16:12:20 2013 +0200 +++ b/src/share/vm/c1/c1_GraphBuilder.cpp Tue Aug 20 09:37:01 2013 +0200 @@ -1583,7 +1583,7 @@ ObjectType* obj_type = obj->type()->as_ObjectType(); if (obj_type->is_constant() && !PatchALot) { ciObject* const_oop = obj_type->constant_value(); - if (!const_oop->is_null_object()) { + if (!const_oop->is_null_object() && const_oop->is_loaded()) { if (field->is_constant()) { ciConstant field_val = field->constant_value_of(const_oop); BasicType field_type = field_val.basic_type();
--- a/src/share/vm/ci/ciInstance.cpp Mon Aug 26 16:12:20 2013 +0200 +++ b/src/share/vm/ci/ciInstance.cpp Tue Aug 20 09:37:01 2013 +0200 @@ -60,10 +60,10 @@ // // Constant value of a field. ciConstant ciInstance::field_value(ciField* field) { - assert(is_loaded() && - field->holder()->is_loaded() && - klass()->is_subclass_of(field->holder()), - "invalid access"); + assert(is_loaded(), "invalid access - must be loaded"); + assert(field->holder()->is_loaded(), "invalid access - holder must be loaded"); + assert(klass()->is_subclass_of(field->holder()), "invalid access - must be subclass"); + VM_ENTRY_MARK; ciConstant result; Handle obj = get_oop();