289 //
290 // f1: [access, name index, sig index, initial value index, low_offset, high_offset]
291 // f2: [access, name index, sig index, initial value index, low_offset, high_offset]
292 // ...
293 // fn: [access, name index, sig index, initial value index, low_offset, high_offset]
294 // [generic signature index]
295 // [generic signature index]
296 // ...
297 Array<u2>* _fields;
298
299 // embedded Java vtable follows here
300 // embedded Java itables follows here
301 // embedded static fields follows here
302 // embedded nonstatic oop-map blocks follows here
303 // embedded implementor of this interface follows here
304 // The embedded implementor only exists if the current klass is an
305 // iterface. The possible values of the implementor fall into following
306 // three cases:
307 // NULL: no implementor.
308 // A Klass* that's not itself: one implementor.
309 // Itsef: more than one implementors.
310 // embedded host klass follows here
311 // The embedded host klass only exists in an anonymous class for
312 // dynamic language support (JSR 292 enabled). The host class grants
313 // its access privileges to this class also. The host class is either
314 // named, or a previously loaded anonymous class. A non-anonymous class
315 // or an anonymous class loaded through normal classloading does not
316 // have this embedded field.
317 //
318
319 friend class SystemDictionary;
320
321 public:
322 bool has_nonstatic_fields() const {
323 return (_misc_flags & _misc_has_nonstatic_fields) != 0;
324 }
325 void set_has_nonstatic_fields(bool b) {
326 if (b) {
327 _misc_flags |= _misc_has_nonstatic_fields;
328 } else {
329 _misc_flags &= ~_misc_has_nonstatic_fields;
|
289 //
290 // f1: [access, name index, sig index, initial value index, low_offset, high_offset]
291 // f2: [access, name index, sig index, initial value index, low_offset, high_offset]
292 // ...
293 // fn: [access, name index, sig index, initial value index, low_offset, high_offset]
294 // [generic signature index]
295 // [generic signature index]
296 // ...
297 Array<u2>* _fields;
298
299 // embedded Java vtable follows here
300 // embedded Java itables follows here
301 // embedded static fields follows here
302 // embedded nonstatic oop-map blocks follows here
303 // embedded implementor of this interface follows here
304 // The embedded implementor only exists if the current klass is an
305 // iterface. The possible values of the implementor fall into following
306 // three cases:
307 // NULL: no implementor.
308 // A Klass* that's not itself: one implementor.
309 // Itself: more than one implementors.
310 // embedded host klass follows here
311 // The embedded host klass only exists in an anonymous class for
312 // dynamic language support (JSR 292 enabled). The host class grants
313 // its access privileges to this class also. The host class is either
314 // named, or a previously loaded anonymous class. A non-anonymous class
315 // or an anonymous class loaded through normal classloading does not
316 // have this embedded field.
317 //
318
319 friend class SystemDictionary;
320
321 public:
322 bool has_nonstatic_fields() const {
323 return (_misc_flags & _misc_has_nonstatic_fields) != 0;
324 }
325 void set_has_nonstatic_fields(bool b) {
326 if (b) {
327 _misc_flags |= _misc_has_nonstatic_fields;
328 } else {
329 _misc_flags &= ~_misc_has_nonstatic_fields;
|