< prev index next >

src/hotspot/share/ci/ciInstance.cpp

Print this page

        

*** 68,77 **** --- 68,78 ---- case T_BOOLEAN: return ciConstant(field_btype, obj->bool_field(offset)); case T_INT: return ciConstant(field_btype, obj->int_field(offset)); case T_FLOAT: return ciConstant(obj->float_field(offset)); case T_DOUBLE: return ciConstant(obj->double_field(offset)); case T_LONG: return ciConstant(obj->long_field(offset)); + case T_VALUETYPE: // fall through case T_OBJECT: // fall through case T_ARRAY: { oop o = obj->obj_field(offset); // A field will be "constant" if it is known always to be
*** 98,108 **** // // Constant value of a field. ciConstant ciInstance::field_value(ciField* field) { assert(is_loaded(), "invalid access - must be loaded"); assert(field->holder()->is_loaded(), "invalid access - holder must be loaded"); ! assert(field->is_static() || klass()->is_subclass_of(field->holder()), "invalid access - must be subclass"); GUARDED_VM_ENTRY(return field_value_impl(field->type()->basic_type(), field->offset());) } // ------------------------------------------------------------------ --- 99,110 ---- // // Constant value of a field. ciConstant ciInstance::field_value(ciField* field) { assert(is_loaded(), "invalid access - must be loaded"); assert(field->holder()->is_loaded(), "invalid access - holder must be loaded"); ! assert(field->is_static() || field->holder()->is_valuetype() || klass()->is_subclass_of(field->holder()), ! "invalid access - must be subclass"); GUARDED_VM_ENTRY(return field_value_impl(field->type()->basic_type(), field->offset());) } // ------------------------------------------------------------------
< prev index next >