< prev index next >

src/hotspot/share/ci/ciInstanceKlass.hpp

Print this page




 103   bool is_shared() { return _is_shared; }
 104 
 105   void compute_shared_init_state();
 106   bool compute_shared_has_subklass();
 107   int  compute_nonstatic_fields();
 108   GrowableArray<ciField*>* compute_nonstatic_fields_impl(GrowableArray<ciField*>* super_fields);
 109 
 110   // Update the init_state for shared klasses
 111   void update_if_shared(InstanceKlass::ClassState expected) {
 112     if (_is_shared && _init_state != expected) {
 113       if (is_loaded()) compute_shared_init_state();
 114     }
 115   }
 116 
 117 public:
 118   // Has this klass been initialized?
 119   bool                   is_initialized() {
 120     update_if_shared(InstanceKlass::fully_initialized);
 121     return _init_state == InstanceKlass::fully_initialized;
 122   }




 123   // Is this klass being initialized?
 124   bool                   is_being_initialized() {
 125     update_if_shared(InstanceKlass::being_initialized);
 126     return _init_state == InstanceKlass::being_initialized;
 127   }
 128   // Has this klass been linked?
 129   bool                   is_linked() {
 130     update_if_shared(InstanceKlass::linked);
 131     return _init_state >= InstanceKlass::linked;
 132   }





 133 
 134   // General klass information.
 135   ciFlags                flags()          {
 136     assert(is_loaded(), "must be loaded");
 137     return _flags;
 138   }
 139   bool                   has_finalizer()  {
 140     assert(is_loaded(), "must be loaded");
 141     return _has_finalizer; }
 142   bool                   has_subklass()   {
 143     assert(is_loaded(), "must be loaded");
 144     if (_has_subklass == subklass_unknown ||
 145         (_is_shared && _has_subklass == subklass_false)) {
 146       if (flags().is_final()) {
 147         return false;
 148       } else {
 149         return compute_shared_has_subklass();
 150       }
 151     }
 152     return _has_subklass == subklass_true;




 103   bool is_shared() { return _is_shared; }
 104 
 105   void compute_shared_init_state();
 106   bool compute_shared_has_subklass();
 107   int  compute_nonstatic_fields();
 108   GrowableArray<ciField*>* compute_nonstatic_fields_impl(GrowableArray<ciField*>* super_fields);
 109 
 110   // Update the init_state for shared klasses
 111   void update_if_shared(InstanceKlass::ClassState expected) {
 112     if (_is_shared && _init_state != expected) {
 113       if (is_loaded()) compute_shared_init_state();
 114     }
 115   }
 116 
 117 public:
 118   // Has this klass been initialized?
 119   bool                   is_initialized() {
 120     update_if_shared(InstanceKlass::fully_initialized);
 121     return _init_state == InstanceKlass::fully_initialized;
 122   }
 123   bool                   is_not_initialized() {
 124     update_if_shared(InstanceKlass::fully_initialized);
 125     return _init_state < InstanceKlass::being_initialized;
 126   }
 127   // Is this klass being initialized?
 128   bool                   is_being_initialized() {
 129     update_if_shared(InstanceKlass::being_initialized);
 130     return _init_state == InstanceKlass::being_initialized;
 131   }
 132   // Has this klass been linked?
 133   bool                   is_linked() {
 134     update_if_shared(InstanceKlass::linked);
 135     return _init_state >= InstanceKlass::linked;
 136   }
 137   // Is this klass in error state?
 138   bool                   is_in_error_state() {
 139     update_if_shared(InstanceKlass::initialization_error);
 140     return _init_state == InstanceKlass::initialization_error;
 141   }
 142 
 143   // General klass information.
 144   ciFlags                flags()          {
 145     assert(is_loaded(), "must be loaded");
 146     return _flags;
 147   }
 148   bool                   has_finalizer()  {
 149     assert(is_loaded(), "must be loaded");
 150     return _has_finalizer; }
 151   bool                   has_subklass()   {
 152     assert(is_loaded(), "must be loaded");
 153     if (_has_subklass == subklass_unknown ||
 154         (_is_shared && _has_subklass == subklass_false)) {
 155       if (flags().is_final()) {
 156         return false;
 157       } else {
 158         return compute_shared_has_subklass();
 159       }
 160     }
 161     return _has_subklass == subklass_true;


< prev index next >