• Icon: Sub-task Sub-task
    • Resolution: Fixed
    • Icon: P2 P2
    • 9
    • 9
    • hotspot
    • gc
    • b139
    • generic
    • generic

        Part of addressing JDK-8160369 involves examining and possibly fixing all uses of Klass::klass_or_null(). ParNew uses klass_or_null() in a few places. However, all of these uses of klass_or_null() are semantically incorrect.

        ParNew sometimes collects a list of some from-space objects, using the klass "field" as the next link in the list. JDK-6964458 introduced set_klass_to_list_ptr() and list_ptr_from_klass() to package up this usage. These were used to replace the direct uses of set_klass() and klass() respectively. However, uses of klass_or_null() were not updated, even though in the places where it is being used (by ParNew) the object it is being applied to is in that linked-through-klass list, so the result is never a Klass, but instead is the next element in the list, a special list marker (BUSY), or NULL.

              kbarrett Kim Barrett
              kbarrett Kim Barrett
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: