RFR (XS) 8022283: Assertion failed: assert(is_loaded() && field->holder()->is_loaded() && klass()->is_subclass_of (field->holder())) failed: invalid access
Christian Thalinger
christian.thalinger at oracle.com
Tue Aug 20 10:37:55 PDT 2013
On Aug 20, 2013, at 9:28 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> Rickard,
Looks good.
>
> As a cleanup, can you split failing assert in 3 different asserts?
>
> ciConstant ciInstance::field_value(ciField* field) {
> assert(is_loaded() &&
> field->holder()->is_loaded() &&
> klass()->is_subclass_of(field->holder()),
> "invalid access");
Right. I remember we talked about this. Rickard, can you do this change?
-- Chris
>
>
> Otherwise, looks good (not a Reviewer).
>
> Best regards,
> Vladimir Ivanov
>
> On 8/20/13 8:04 PM, Rickard Bäckman wrote:
>> http://cr.openjdk.java.net/~rbackman/8022283/
>> http://bugs.sun.com/view_bug.do?bug_id=8022283
>>
>> Add a check that verifies that the constant is "is_loaded".
>>
>> Comment from ciObject.hpp
>>
>> // Note: some ciObjects refer to oops which have yet to be created.
>> // We refer to these as "unloaded". Specifically, there are
>> // unloaded instances of java.lang.Class,
>> // java.lang.invoke.MethodHandle, and java.lang.invoke.MethodType.
>> // By convention the ciNullObject is considered loaded, and
>> // primitive types are considered loaded.
>>
>> In this case we had a java.lang.invoke.MethodType.
>>
>> <ciField name=java/lang/invoke/MethodHandle.type signature=Ljava/lang/invoke/MethodType; offset=12 type=java/lang/invoke/MethodType is_constant=true>$1 = void
>>
>> Thanks
>> /R
>>
More information about the hotspot-compiler-dev
mailing list