< prev index next >

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

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 2000, 2025, 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.

*** 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 >