1106 {
1107 Deserializer::Local
d(d_);
1108
1109 for (intptr_t id = predefined_start_index_; id < predefined_stop_index_;
1110 id++) {
1111 ClassPtr cls =
static_cast<ClassPtr
>(
d.Ref(
id));
1113 intptr_t class_id =
d.ReadCid();
1114 cls->untag()->id_ = class_id;
1115#if !defined(DART_PRECOMPILED_RUNTIME)
1117 cls->untag()->kernel_offset_ =
d.Read<uint32_t>();
1118#endif
1120 cls->untag()->host_instance_size_in_words_ =
d.Read<int32_t>();
1121 cls->untag()->host_next_field_offset_in_words_ =
d.Read<int32_t>();
1122#if defined(DART_PRECOMPILER)
1123
1124
1125 cls->untag()->target_instance_size_in_words_ =
1126 cls->untag()->host_instance_size_in_words_;
1127 cls->untag()->target_next_field_offset_in_words_ =
1128 cls->untag()->host_next_field_offset_in_words_;
1129#endif
1130 } else {
1133 }
1134 cls->untag()->host_type_arguments_field_offset_in_words_ =
1136#if defined(DART_PRECOMPILER)
1137 cls->untag()->target_type_arguments_field_offset_in_words_ =
1138 cls->untag()->host_type_arguments_field_offset_in_words_;
1139#endif
1140 cls->untag()->num_type_arguments_ =
d.Read<int16_t>();
1141 cls->untag()->num_native_fields_ =
d.Read<uint16_t>();
1142#if !defined(DART_PRECOMPILED_RUNTIME)
1144 cls->untag()->token_pos_ =
d.ReadTokenPosition();
1145 cls->untag()->end_token_pos_ =
d.ReadTokenPosition();
1146 cls->untag()->implementor_cid_ =
d.ReadCid();
1147#endif
1148 cls->untag()->state_bits_ =
d.Read<uint32_t>();
1150 }
1151
1152 ClassTable*
table = d_->isolate_group()->class_table();
1154 ClassPtr cls =
static_cast<ClassPtr
>(
d.Ref(
id));
1157
1158 intptr_t class_id =
d.ReadCid();
1160 cls->untag()->id_ = class_id;
1161
1162#if !defined(DART_PRECOMPILED_RUNTIME)
1164 cls->untag()->kernel_offset_ =
d.Read<uint32_t>();
1165#endif
1166 cls->untag()->host_instance_size_in_words_ =
d.Read<int32_t>();
1167 cls->untag()->host_next_field_offset_in_words_ =
d.Read<int32_t>();
1168 cls->untag()->host_type_arguments_field_offset_in_words_ =
1170#if defined(DART_PRECOMPILER)
1171 cls->untag()->target_instance_size_in_words_ =
1172 cls->untag()->host_instance_size_in_words_;
1173 cls->untag()->target_next_field_offset_in_words_ =
1174 cls->untag()->host_next_field_offset_in_words_;
1175 cls->untag()->target_type_arguments_field_offset_in_words_ =
1176 cls->untag()->host_type_arguments_field_offset_in_words_;
1177#endif
1178 cls->untag()->num_type_arguments_ =
d.Read<int16_t>();
1179 cls->untag()->num_native_fields_ =
d.Read<uint16_t>();
1180#if !defined(DART_PRECOMPILED_RUNTIME)
1182 cls->untag()->token_pos_ =
d.ReadTokenPosition();
1183 cls->untag()->end_token_pos_ =
d.ReadTokenPosition();
1184 cls->untag()->implementor_cid_ =
d.ReadCid();
1185#endif
1186 cls->untag()->state_bits_ =
d.Read<uint32_t>();
1187
1188 table->AllocateIndex(class_id);
1189 table->SetAt(class_id, cls);
1190
1192 const UnboxedFieldBitmap unboxed_fields_map(
d.ReadUnsigned64());
1193 table->SetUnboxedFieldsMapAt(class_id, unboxed_fields_map);
1194 }
1195 }
1196 }
static bool IsTopLevelCid(intptr_t cid)
static void InitializeHeader(ObjectPtr raw, intptr_t cid, intptr_t size, bool is_canonical=false)
bool IsInternalVMdefinedClassId(intptr_t index)