< prev index next >

src/hotspot/share/oops/fieldInfo.cpp

Print this page

 90   int ifc = r.next_uint();
 91   assert(ifc == injected_fields, "Must be");
 92   for (int i = 0; i < jfc + ifc; i++) {
 93     FieldInfo fi;
 94     r.read_field_info(fi);
 95     FieldInfo* fi_ref = fields->adr_at(i);
 96     assert(fi_ref->name_index() == fi.name_index(), "Must be");
 97     assert(fi_ref->signature_index() == fi.signature_index(), "Must be");
 98     assert(fi_ref->offset() == fi.offset(), "Must be");
 99     assert(fi_ref->access_flags().as_field_flags() == fi.access_flags().as_field_flags(), "Must be");
100     assert(fi_ref->field_flags().as_uint() == fi.field_flags().as_uint(), " Must be");
101     if(fi_ref->field_flags().is_initialized()) {
102       assert(fi_ref->initializer_index() == fi.initializer_index(), "Must be");
103     }
104     if (fi_ref->field_flags().is_generic()) {
105       assert(fi_ref->generic_signature_index() == fi.generic_signature_index(), "Must be");
106     }
107     if (fi_ref->field_flags().is_contended()) {
108       assert(fi_ref->contended_group() == fi.contended_group(), "Must be");
109     }






110   }
111 #endif // ASSERT
112 
113   return fis;
114 }
115 
116 GrowableArray<FieldInfo>* FieldInfoStream::create_FieldInfoArray(const Array<u1>* fis, int* java_fields_count, int* injected_fields_count) {
117   int length = FieldInfoStream::num_total_fields(fis);
118   GrowableArray<FieldInfo>* array = new GrowableArray<FieldInfo>(length);
119   FieldInfoReader r(fis);
120   *java_fields_count = r.next_uint();
121   *injected_fields_count = r.next_uint();
122   while (r.has_next()) {
123     FieldInfo fi;
124     r.read_field_info(fi);
125     array->append(fi);
126   }
127   assert(array->length() == length, "Must be");
128   assert(array->length() == *java_fields_count + *injected_fields_count, "Must be");
129   return array;

 90   int ifc = r.next_uint();
 91   assert(ifc == injected_fields, "Must be");
 92   for (int i = 0; i < jfc + ifc; i++) {
 93     FieldInfo fi;
 94     r.read_field_info(fi);
 95     FieldInfo* fi_ref = fields->adr_at(i);
 96     assert(fi_ref->name_index() == fi.name_index(), "Must be");
 97     assert(fi_ref->signature_index() == fi.signature_index(), "Must be");
 98     assert(fi_ref->offset() == fi.offset(), "Must be");
 99     assert(fi_ref->access_flags().as_field_flags() == fi.access_flags().as_field_flags(), "Must be");
100     assert(fi_ref->field_flags().as_uint() == fi.field_flags().as_uint(), " Must be");
101     if(fi_ref->field_flags().is_initialized()) {
102       assert(fi_ref->initializer_index() == fi.initializer_index(), "Must be");
103     }
104     if (fi_ref->field_flags().is_generic()) {
105       assert(fi_ref->generic_signature_index() == fi.generic_signature_index(), "Must be");
106     }
107     if (fi_ref->field_flags().is_contended()) {
108       assert(fi_ref->contended_group() == fi.contended_group(), "Must be");
109     }
110     if (fi_ref->field_flags().is_flat()) {
111       assert(fi_ref->layout_kind() == fi.layout_kind(), "Must be");
112     }
113     if (fi_ref->field_flags().has_null_marker()) {
114       assert(fi_ref->null_marker_offset() == fi.null_marker_offset(), "Must be");
115     }
116   }
117 #endif // ASSERT
118 
119   return fis;
120 }
121 
122 GrowableArray<FieldInfo>* FieldInfoStream::create_FieldInfoArray(const Array<u1>* fis, int* java_fields_count, int* injected_fields_count) {
123   int length = FieldInfoStream::num_total_fields(fis);
124   GrowableArray<FieldInfo>* array = new GrowableArray<FieldInfo>(length);
125   FieldInfoReader r(fis);
126   *java_fields_count = r.next_uint();
127   *injected_fields_count = r.next_uint();
128   while (r.has_next()) {
129     FieldInfo fi;
130     r.read_field_info(fi);
131     array->append(fi);
132   }
133   assert(array->length() == length, "Must be");
134   assert(array->length() == *java_fields_count + *injected_fields_count, "Must be");
135   return array;
< prev index next >