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

fieldDescriptor prints incorrect 32-bit representation of compressed oops

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 11
    • 10
    • hotspot
    • b03

      When UseCompressedOops is enabled for 64-bit VMs, fieldDescriptor::print_on_for prints two 32-bit integers for each object field. E.g.

       - 'asTypeCache' 'Ljava/lang/invoke/MethodHandle;' @24 NULL (0 8221b591)
       - final 'argL0' 'Ljava/lang/Object;' @28 a 'LambHello$$Lambda$1'{0x00000004110dac88} (8221b591 1)

      However, compressed oops occupy the space of only a single 32-bit integer, so the superfluous output is confusing.

      The above should be printed as

      - 'asTypeCache' 'Ljava/lang/invoke/MethodHandle;' @24 NULL (0)
       - final 'argL0' 'Ljava/lang/Object;' @28 a 'LambHello$$Lambda$1'{0x00000004110dac88} (8221b591)

            iklam Ioi Lam
            iklam Ioi Lam
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: