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;
|