< prev index next >
src/share/vm/ci/ciField.cpp
Print this page
@@ -216,10 +216,12 @@
_type = field->_type;
_is_constant = field->_is_constant;
_known_to_link_with_put = field->_known_to_link_with_put;
_known_to_link_with_get = field->_known_to_link_with_get;
_constant_value = field->_constant_value;
+ assert(!field->is_flattened(), "field must not be flattened");
+ _is_flattened = false;
}
static bool trust_final_non_static_fields(ciInstanceKlass* holder) {
if (holder == NULL)
return false;
@@ -253,10 +255,12 @@
void ciField::initialize_from(fieldDescriptor* fd) {
// Get the flags, offset, and canonical holder of the field.
_flags = ciFlags(fd->access_flags());
_offset = fd->offset();
_holder = CURRENT_ENV->get_instance_klass(fd->field_holder());
+ _is_flattened = fd->is_flatten();
+ assert(fd->field_type() == T_VALUETYPE || !_is_flattened, "flattening is only supported for value type fields");
// Check to see if the field is constant.
Klass* k = _holder->get_Klass();
bool is_stable_field = FoldStableValues && is_stable();
if ((is_final() && !has_initialized_final_update()) || is_stable_field) {
< prev index next >