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