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)
- '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)