< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/Field.java

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.
--- 1,7 ---
  /*
!  * Copyright (c) 2000, 2026, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

*** 71,10 ***
--- 71,12 ---
      int accessFlags;
      int fieldFlags;
      int initialValueIndex;
      int genericSignatureIndex;
      int contendedGroup;
+     int layoutKind;
+     int nullMarkerOffset;
    }
  
    // The format of the stream, after decompression, is a series of
    // integers organized like this:
    //

*** 101,10 ***
--- 103,16 ---
          fieldInfoValues.genericSignatureIndex = crs.readInt(); // read generic signature index
      }
      if (fieldIsContended(fieldInfoValues.fieldFlags)) {
          fieldInfoValues.contendedGroup = crs.readInt();        // read contended group
      }
+     if (fieldIsFlat(fieldInfoValues.fieldFlags)) {
+         fieldInfoValues.layoutKind = crs.readInt();            // read LayoutKind as int
+     }
+     if (fieldHasNullMarker(fieldInfoValues.fieldFlags)) {
+         fieldInfoValues.nullMarkerOffset = crs.readInt();      // read null marker offset
+     }
      return fieldInfoValues;
    }
  
    public static Field[] getFields(InstanceKlass kls) {
      CompressedReadStream crs = new CompressedReadStream(kls.getFieldInfoStream().getDataStart());

*** 201,11 ***
    private static boolean fieldIsInitialized(int flags) { return ((flags >> InstanceKlass.FIELD_FLAG_IS_INITIALIZED) & 1 ) != 0; }
    private static boolean fieldIsInjected(int flags)    { return ((flags >> InstanceKlass.FIELD_FLAG_IS_INJECTED   ) & 1 ) != 0; }
    private static boolean fieldIsGeneric(int flags)     { return ((flags >> InstanceKlass.FIELD_FLAG_IS_GENERIC    ) & 1 ) != 0; }
    private static boolean fieldIsStable(int flags)      { return ((flags >> InstanceKlass.FIELD_FLAG_IS_STABLE     ) & 1 ) != 0; }
    private static boolean fieldIsContended(int flags)   { return ((flags >> InstanceKlass.FIELD_FLAG_IS_CONTENDED  ) & 1 ) != 0; }
! 
  
    public boolean isInitialized()             { return fieldIsInitialized(values.fieldFlags); }
    public boolean isInjected()                { return fieldIsInjected(values.fieldFlags); }
    public boolean isGeneric()                 { return fieldIsGeneric(values.fieldFlags); }
    public boolean isStable()                  { return fieldIsStable(values.fieldFlags); }
--- 209,13 ---
    private static boolean fieldIsInitialized(int flags) { return ((flags >> InstanceKlass.FIELD_FLAG_IS_INITIALIZED) & 1 ) != 0; }
    private static boolean fieldIsInjected(int flags)    { return ((flags >> InstanceKlass.FIELD_FLAG_IS_INJECTED   ) & 1 ) != 0; }
    private static boolean fieldIsGeneric(int flags)     { return ((flags >> InstanceKlass.FIELD_FLAG_IS_GENERIC    ) & 1 ) != 0; }
    private static boolean fieldIsStable(int flags)      { return ((flags >> InstanceKlass.FIELD_FLAG_IS_STABLE     ) & 1 ) != 0; }
    private static boolean fieldIsContended(int flags)   { return ((flags >> InstanceKlass.FIELD_FLAG_IS_CONTENDED  ) & 1 ) != 0; }
!   private static boolean fieldIsNullFreeInlineType(int flags) { return ((flags >> InstanceKlass.FIELD_FLAG_IS_NULL_FREE_INLINE) & 1 ) != 0; }
+   private static boolean fieldIsFlat(int flags)               { return ((flags >> InstanceKlass.FIELD_FLAG_IS_FLAT) & 1 ) != 0; }
+   private static boolean fieldHasNullMarker(int flags)         { return ((flags >> InstanceKlass.FIELD_FLAG_IS_NULL_MARKER) & 1 ) != 0; }
  
    public boolean isInitialized()             { return fieldIsInitialized(values.fieldFlags); }
    public boolean isInjected()                { return fieldIsInjected(values.fieldFlags); }
    public boolean isGeneric()                 { return fieldIsGeneric(values.fieldFlags); }
    public boolean isStable()                  { return fieldIsStable(values.fieldFlags); }
< prev index next >