RFR (S): 8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32

Coleen Phillimore coleen.phillimore at oracle.com
Tue May 7 13:46:23 UTC 2013


On 05/07/2013 08:53 AM, Stefan Karlsson wrote:
> On 05/07/2013 02:12 PM, Coleen Phillimore wrote:
>> On 5/7/2013 6:03 AM, Erik Helin wrote:
>>> All,
>>>
>>> based on feedback from Bengt, the boolean condition for a class 
>>> being externally visible have been slightly reordered.
>>>
>>> The logical operators in webrev.01 reads more naturally:
>>>
>>>   k->klass_part()->oop_is_instance() ||
>>>   (k->klass_part()->oop_is_array() && k != systemObjArrayKlassObj())
>>
>> I believe classes either instances or arrays.   What else do you 
>> find?   Klass is just a base class for these two.
>
> No, in JDK7, where we still have the PermGen, k can also describe 
> klassOops. E.g. instanceKlassKlass responds to oop_is_instanceKlass().

Oh, I misssed the JDK7 part of this.   Sorry!
Coleen

>
>>   Both of these oop_is_blah() make virtual calls so you want to avoid 
>> them.
>
> This is just two virtual calls per Klass, while both the marking code 
> and the heap inspection code uses virtual calls on every single object 
> in the heap.
>
> StefanK
>
>>
>> Coleen
>>
>>>
>>> compared to webrev.00:
>>>
>>> (k->klass_part()->oop_is_instance() || 
>>> k->klass_part()->oop_is_array()) &&
>>> k != Universe::systemObjArrayKlassObj()
>>>
>>> since the condition k != Universe::systemObjArrayKlassObj() only 
>>> needs to be checked if k->klass_part()->oop_is_array() is true.
>>>
>>> New webrev:
>>> http://cr.openjdk.java.net/~ehelin/8011425/webrev.01/
>>>
>>> Thanks,
>>> Erik
>>>
>>> On 05/03/2013 03:51 PM, Erik Helin wrote:
>>>> Hi all,
>>>>
>>>> this change makes sure that the vm/gc/detailed/object_after_gc_event
>>>> only is sent for classes that should be visible externally.
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~ehelin/8011425/webrev.00/
>>>>
>>>> Thanks,
>>>> Erik
>>>
>>
>




More information about the hotspot-gc-dev mailing list