< prev index next >

src/share/vm/ci/ciValueKlass.cpp

Print this page

        

*** 34,49 **** if (_field_index_map != NULL) { return _field_index_map->length(); } Arena* arena = CURRENT_ENV->arena(); ! guarantee(has_nonstatic_fields(), "value types without fields currently not supported"); // FIXME: Once it is possible to construct class hierarchies with value types. assert(!super()->has_nonstatic_fields(), "a value type must not inherit fields from its superclass"); - _field_index_map = new (arena) GrowableArray<int>(arena, nof_declared_nonstatic_fields(), 0, 0); ValueKlass* vklass = ValueKlass::cast(get_Klass()); for (JavaFieldStream fs(vklass); !fs.done(); fs.next()) { if (fs.access_flags().is_static()) { continue; } --- 34,51 ---- if (_field_index_map != NULL) { return _field_index_map->length(); } Arena* arena = CURRENT_ENV->arena(); ! _field_index_map = new (arena) GrowableArray<int>(arena, nof_declared_nonstatic_fields(), 0, 0); ! if (!has_nonstatic_fields()) { ! return 0; ! } // FIXME: Once it is possible to construct class hierarchies with value types. assert(!super()->has_nonstatic_fields(), "a value type must not inherit fields from its superclass"); ValueKlass* vklass = ValueKlass::cast(get_Klass()); for (JavaFieldStream fs(vklass); !fs.done(); fs.next()) { if (fs.access_flags().is_static()) { continue; }
*** 52,64 **** return _field_index_map->length(); } // Number of value type fields int ciValueKlass::field_count() { - if (this == ciEnv::current()->___Value_klass()) { - return 0; - } if (_field_index_map == NULL) { return compute_field_index_map(); } else { return _field_index_map->length(); } --- 54,63 ----
< prev index next >