src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/oops/InstanceKlass.java
changeset 51444 3e5d28e6de32
parent 50929 ef57cfcd22ff
child 52514 f4e3900c8d08
equal deleted inserted replaced
51443:cdffba164671 51444:3e5d28e6de32
    67 
    67 
    68   // _misc_flags constants
    68   // _misc_flags constants
    69   private static int MISC_REWRITTEN;
    69   private static int MISC_REWRITTEN;
    70   private static int MISC_HAS_NONSTATIC_FIELDS;
    70   private static int MISC_HAS_NONSTATIC_FIELDS;
    71   private static int MISC_SHOULD_VERIFY_CLASS;
    71   private static int MISC_SHOULD_VERIFY_CLASS;
    72   private static int MISC_IS_ANONYMOUS;
    72   private static int MISC_IS_UNSAFE_ANONYMOUS;
    73   private static int MISC_IS_CONTENDED;
    73   private static int MISC_IS_CONTENDED;
    74   private static int MISC_HAS_NONSTATIC_CONCRETE_METHODS;
    74   private static int MISC_HAS_NONSTATIC_CONCRETE_METHODS;
    75   private static int MISC_DECLARES_NONSTATIC_CONCRETE_METHODS;
    75   private static int MISC_DECLARES_NONSTATIC_CONCRETE_METHODS;
    76   private static int MISC_HAS_BEEN_REDEFINED;
    76   private static int MISC_HAS_BEEN_REDEFINED;
    77   private static int MISC_HAS_PASSED_FINGERPRINT_CHECK;
    77   private static int MISC_HAS_PASSED_FINGERPRINT_CHECK;
   131     CLASS_STATE_INITIALIZATION_ERROR = db.lookupIntConstant("InstanceKlass::initialization_error").intValue();
   131     CLASS_STATE_INITIALIZATION_ERROR = db.lookupIntConstant("InstanceKlass::initialization_error").intValue();
   132 
   132 
   133     MISC_REWRITTEN                    = db.lookupIntConstant("InstanceKlass::_misc_rewritten").intValue();
   133     MISC_REWRITTEN                    = db.lookupIntConstant("InstanceKlass::_misc_rewritten").intValue();
   134     MISC_HAS_NONSTATIC_FIELDS         = db.lookupIntConstant("InstanceKlass::_misc_has_nonstatic_fields").intValue();
   134     MISC_HAS_NONSTATIC_FIELDS         = db.lookupIntConstant("InstanceKlass::_misc_has_nonstatic_fields").intValue();
   135     MISC_SHOULD_VERIFY_CLASS          = db.lookupIntConstant("InstanceKlass::_misc_should_verify_class").intValue();
   135     MISC_SHOULD_VERIFY_CLASS          = db.lookupIntConstant("InstanceKlass::_misc_should_verify_class").intValue();
   136     MISC_IS_ANONYMOUS                 = db.lookupIntConstant("InstanceKlass::_misc_is_anonymous").intValue();
   136     MISC_IS_UNSAFE_ANONYMOUS          = db.lookupIntConstant("InstanceKlass::_misc_is_unsafe_anonymous").intValue();
   137     MISC_IS_CONTENDED                 = db.lookupIntConstant("InstanceKlass::_misc_is_contended").intValue();
   137     MISC_IS_CONTENDED                 = db.lookupIntConstant("InstanceKlass::_misc_is_contended").intValue();
   138     MISC_HAS_NONSTATIC_CONCRETE_METHODS      = db.lookupIntConstant("InstanceKlass::_misc_has_nonstatic_concrete_methods").intValue();
   138     MISC_HAS_NONSTATIC_CONCRETE_METHODS      = db.lookupIntConstant("InstanceKlass::_misc_has_nonstatic_concrete_methods").intValue();
   139     MISC_DECLARES_NONSTATIC_CONCRETE_METHODS = db.lookupIntConstant("InstanceKlass::_misc_declares_nonstatic_concrete_methods").intValue();
   139     MISC_DECLARES_NONSTATIC_CONCRETE_METHODS = db.lookupIntConstant("InstanceKlass::_misc_declares_nonstatic_concrete_methods").intValue();
   140     MISC_HAS_BEEN_REDEFINED           = db.lookupIntConstant("InstanceKlass::_misc_has_been_redefined").intValue();
   140     MISC_HAS_BEEN_REDEFINED           = db.lookupIntConstant("InstanceKlass::_misc_has_been_redefined").intValue();
   141     MISC_HAS_PASSED_FINGERPRINT_CHECK = db.lookupIntConstant("InstanceKlass::_misc_has_passed_fingerprint_check").intValue();
   141     MISC_HAS_PASSED_FINGERPRINT_CHECK = db.lookupIntConstant("InstanceKlass::_misc_has_passed_fingerprint_check").intValue();
   279                  getItableLen() +
   279                  getItableLen() +
   280                  getNonstaticOopMapSize()) * wordLength;
   280                  getNonstaticOopMapSize()) * wordLength;
   281     if (isInterface()) {
   281     if (isInterface()) {
   282       size += wordLength;
   282       size += wordLength;
   283     }
   283     }
   284     if (isAnonymous()) {
   284     if (isUnsafeAnonymous()) {
   285       size += wordLength;
   285       size += wordLength;
   286     }
   286     }
   287     if (hasStoredFingerprint()) {
   287     if (hasStoredFingerprint()) {
   288       size += 8; // uint64_t
   288       size += 8; // uint64_t
   289     }
   289     }
   292 
   292 
   293   private int getMiscFlags() {
   293   private int getMiscFlags() {
   294     return (int) miscFlags.getValue(this);
   294     return (int) miscFlags.getValue(this);
   295   }
   295   }
   296 
   296 
   297   public boolean isAnonymous() {
   297   public boolean isUnsafeAnonymous() {
   298     return (getMiscFlags() & MISC_IS_ANONYMOUS) != 0;
   298     return (getMiscFlags() & MISC_IS_UNSAFE_ANONYMOUS) != 0;
   299   }
   299   }
   300 
   300 
   301   public static boolean shouldStoreFingerprint() {
   301   public static boolean shouldStoreFingerprint() {
   302     VM vm = VM.getVM();
   302     VM vm = VM.getVM();
   303     if (vm.getCommandLineBooleanFlag("EnableJVMCI") && !vm.getCommandLineBooleanFlag("UseJVMCICompiler")) {
   303     if (vm.getCommandLineBooleanFlag("EnableJVMCI") && !vm.getCommandLineBooleanFlag("UseJVMCICompiler")) {