1.1 --- a/src/share/vm/oops/instanceKlass.hpp Fri Oct 24 03:03:59 2014 +0000 1.2 +++ b/src/share/vm/oops/instanceKlass.hpp Fri Oct 24 12:29:08 2014 -0700 1.3 @@ -229,12 +229,13 @@ 1.4 bool _has_unloaded_dependent; 1.5 1.6 enum { 1.7 - _misc_rewritten = 1 << 0, // methods rewritten. 1.8 - _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops 1.9 - _misc_should_verify_class = 1 << 2, // allow caching of preverification 1.10 - _misc_is_anonymous = 1 << 3, // has embedded _host_klass field 1.11 - _misc_is_contended = 1 << 4, // marked with contended annotation 1.12 - _misc_has_default_methods = 1 << 5 // class/superclass/implemented interfaces has default methods 1.13 + _misc_rewritten = 1 << 0, // methods rewritten. 1.14 + _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops 1.15 + _misc_should_verify_class = 1 << 2, // allow caching of preverification 1.16 + _misc_is_anonymous = 1 << 3, // has embedded _host_klass field 1.17 + _misc_is_contended = 1 << 4, // marked with contended annotation 1.18 + _misc_has_default_methods = 1 << 5, // class/superclass/implemented interfaces has default methods 1.19 + _misc_declares_default_methods = 1 << 6 // directly declares default methods (any access) 1.20 }; 1.21 u2 _misc_flags; 1.22 u2 _minor_version; // minor version number of class file 1.23 @@ -680,6 +681,17 @@ 1.24 } 1.25 } 1.26 1.27 + bool declares_default_methods() const { 1.28 + return (_misc_flags & _misc_declares_default_methods) != 0; 1.29 + } 1.30 + void set_declares_default_methods(bool b) { 1.31 + if (b) { 1.32 + _misc_flags |= _misc_declares_default_methods; 1.33 + } else { 1.34 + _misc_flags &= ~_misc_declares_default_methods; 1.35 + } 1.36 + } 1.37 + 1.38 // for adding methods, ConstMethod::UNSET_IDNUM means no more ids available 1.39 inline u2 next_method_idnum(); 1.40 void set_initial_method_idnum(u2 value) { _idnum_allocated_count = value; } 1.41 @@ -1046,6 +1058,7 @@ 1.42 static bool link_class_impl (instanceKlassHandle this_oop, bool throw_verifyerror, TRAPS); 1.43 static bool verify_code (instanceKlassHandle this_oop, bool throw_verifyerror, TRAPS); 1.44 static void initialize_impl (instanceKlassHandle this_oop, TRAPS); 1.45 + static void initialize_super_interfaces (instanceKlassHandle this_oop, TRAPS); 1.46 static void eager_initialize_impl (instanceKlassHandle this_oop); 1.47 static void set_initialization_state_and_notify_impl (instanceKlassHandle this_oop, ClassState state, TRAPS); 1.48 static void call_class_initializer_impl (instanceKlassHandle this_oop, TRAPS);