equal
deleted
inserted
replaced
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")) { |