< prev index next >

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

Print this page
@@ -1,7 +1,7 @@
  /*
-  * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved.
+  * 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.

@@ -51,10 +51,13 @@
    static int FIELD_FLAG_IS_INITIALIZED;
    static int FIELD_FLAG_IS_INJECTED;
    static int FIELD_FLAG_IS_GENERIC;
    static int FIELD_FLAG_IS_STABLE;
    static int FIELD_FLAG_IS_CONTENDED;
+   static int FIELD_FLAG_IS_NULL_FREE_INLINE;
+   static int FIELD_FLAG_IS_FLAT;
+   static int FIELD_FLAG_IS_NULL_MARKER;
  
    // ClassState constants
    private static int CLASS_STATE_ALLOCATED;
    private static int CLASS_STATE_LOADED;
    private static int CLASS_STATE_LINKED;

@@ -71,10 +74,14 @@
    public boolean isInterface()              { return getAccessFlagsObj().isInterface(); }
    public boolean isAbstract()               { return getAccessFlagsObj().isAbstract(); }
    public boolean isSuper()                  { return getAccessFlagsObj().isSuper(); }
    public boolean isSynthetic()              { return getAccessFlagsObj().isSynthetic(); }
  
+   public boolean supportsInlineTypes() {
+       return majorVersion() >= VALUE_TYPES_MAJOR_VERSION && minorVersion() == JAVA_PREVIEW_MINOR_VERSION;
+   }
+ 
    private static synchronized void initialize(TypeDataBase db) throws WrongTypeException {
      Type type            = db.lookupType("InstanceKlass");
      annotations          = type.getAddressField("_annotations");
      arrayKlasses         = new MetadataField(type.getAddressField("_array_klasses"), 0);
      methods              = type.getAddressField("_methods");

@@ -104,10 +111,13 @@
      FIELD_FLAG_IS_INITIALIZED      = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_initialized");
      FIELD_FLAG_IS_INJECTED         = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_injected");
      FIELD_FLAG_IS_GENERIC          = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_generic");
      FIELD_FLAG_IS_STABLE           = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_stable");
      FIELD_FLAG_IS_CONTENDED        = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_contended");
+     FIELD_FLAG_IS_NULL_FREE_INLINE = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_null_free_inline_type");
+     FIELD_FLAG_IS_FLAT             = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_flat");
+     FIELD_FLAG_IS_NULL_MARKER      = db.lookupIntConstant("FieldInfo::FieldFlags::_ff_null_marker");
  
  
      // read ClassState constants
      CLASS_STATE_ALLOCATED = db.lookupIntConstant("InstanceKlass::allocated").intValue();
      CLASS_STATE_LOADED = db.lookupIntConstant("InstanceKlass::loaded").intValue();
< prev index next >