RFR (S): 8011425: NPE in TestObjectCountAfterGCEvent.java on Linux32
stefan.karlsson at oracle.com
Tue May 7 12:53:31 UTC 2013
On 05/07/2013 02:12 PM, Coleen Phillimore wrote:
> On 5/7/2013 6:03 AM, Erik Helin wrote:
>> 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().
> Both of these oop_is_blah() make virtual calls so you want to avoid
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.
>> 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:
>> 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.
More information about the hotspot-gc-dev