Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8283574

Use Klass::_id for type checks in the C++ code

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 19
    • None
    • hotspot
    • None
    • gc
    • b16

      We have at least three ways to check the type of a given Klass*:
      1) Using the Klass::_id field
      2) Using the layout helper
      3) Using the InstanceKlass::_kind field

      The Klass::_id field was something that was added when we rewrote the oop_oop_iterate dispatch mechanism, but the other mechanisms where left in place.

      The current Loom code uses both (2) and (3) every time a the code checks if an object is of type InstanceStackChunkKlass. In the Loom repository I intend to reduce that check to be a single test against the (1) field. To keep the code unified, and simpler, I changed all C++ Klass type checks to use (1).

      I propose that we upstream this change to the mainline, to slightly reduce the Loom diff.

            stefank Stefan Karlsson
            stefank Stefan Karlsson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: