Fwd: RFR: 8158946 - btree009 fails with assert(s > 0) failed: Bad size calculated
Derek White
derek.white at oracle.com
Fri Jul 1 13:50:51 UTC 2016
Thanks David!
- Derek
On 6/30/16 10:09 PM, David Holmes wrote:
> On 1/07/2016 7:15 AM, Derek White wrote:
>> New webrev goes back to using java_lang_Class::set_oop_size(new_cls,
>> size);
>>
>> http://cr.openjdk.java.net/~drwhite/8158946/webrev.04/
>
> Much neater/simpler :) Thanks.
>
> Aside: I had no idea we could do printf style strings in asserts! When
> did we get that? :)
>
> Thanks,
> David
> -----
>
>> jprt run in progress. Built w/ and w/o PCH.
>>
>> On 6/30/16 7:56 AM, Derek White wrote:
>>> On 6/30/16 12:28 AM, David Holmes wrote:
>>>> Hi Derek,
>>>>
>>>> Understand the fix in principle.
>>>>
>>>> But I don't understand why you got rid of
>>>> java_lang_Class::set_oop_size, and instead exposed
>>>> java_lang_Class::oop_size_offset(), then had
>>>> InstanceMirrorKlass::allocate_instance pass the offset to
>>>> CollectedHeap::class_allocate, which passes it to
>>>> CollectedHeap::post_allocation_setup_class - that seems rather
>>>> convoluted. Can CollectedHeap::post_allocation_setup_class not call
>>>> java_lang_Class::set_oop_size directly?
>>>
>>> Short answer is I didn't think so. collectedHeap.inline.hpp has a very
>>> small include set, and I was concerned about circular dependencies.
>>> Another approach would be to push ::set_oop_size() over to
>>> instanceKlassMirror.hpp, and see if the includes seem saner that way.
>>> I'll try some alternatives...
>>
>> OK, doing the simple and obvious thing worked out after all. Thanks
>> David!
>>
>> - Derek
More information about the hotspot-runtime-dev
mailing list