src/share/vm/oops/instanceKlass.hpp

changeset 7290
90257dfad6e3
parent 7089
6e0cb14ce59b
child 7325
3c87c13918fb
     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);

mercurial