src/share/vm/ci/ciInstanceKlass.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/ci/ciInstanceKlass.hpp	Fri Dec  2 14:22:05 2016
--- new/src/share/vm/ci/ciInstanceKlass.hpp	Fri Dec  2 14:22:05 2016

*** 63,72 **** --- 63,74 ---- ciInstanceKlass* _super; ciInstance* _java_mirror; ciConstantPoolCache* _field_cache; // cached map index->field GrowableArray<ciField*>* _nonstatic_fields; + int _nof_declared_nonstatic_fields; // Number of nonstatic fields declared in the bytecode + // i.e., without value types flattened into the instance. int _has_injected_fields; // any non static injected fields? lazily initialized. // The possible values of the _implementor fall into following three cases: // NULL: no implementor. // A ciInstanceKlass that's not itself: one implementor.
*** 194,203 **** --- 196,213 ---- return compute_nonstatic_fields(); else return _nonstatic_fields->length(); } + int nof_declared_nonstatic_fields() { + if (_nonstatic_fields == NULL) { + compute_nonstatic_fields(); + } + assert(_nof_declared_nonstatic_fields >= 0, "after lazy initialization _nof_declared_nonstatic_fields must be at least 0"); + return _nof_declared_nonstatic_fields; + } + bool has_injected_fields() { if (_has_injected_fields == -1) { compute_injected_fields(); } return _has_injected_fields > 0 ? true : false;

src/share/vm/ci/ciInstanceKlass.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File