Skip to content

Commit 3935f5d

Browse files
committed
rt: Fix crashes introduced by new ShapeKinds
1 parent 1284e62 commit 3935f5d

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

dora-runtime/src/vm/classes.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,19 @@ fn build_ref_fields(
8383
fields: &[FieldInstance],
8484
) -> Vec<i32> {
8585
match &kind {
86-
ShapeKind::Class(cls_id, type_params) => {
87-
if vm.known.array_class_id() == *cls_id {
88-
if size == InstanceSize::ObjArray {
89-
Vec::new()
90-
} else {
91-
create_array_ref_fields(vm, type_params[0].clone())
92-
}
93-
} else if vm.known.string_class_id() == *cls_id {
86+
ShapeKind::Class(..) => create_ref_fields(vm, fields, Vec::new()),
87+
88+
ShapeKind::Array(_cls_id, type_params) => {
89+
if size == InstanceSize::ObjArray {
9490
Vec::new()
9591
} else {
96-
let ref_fields = Vec::new();
97-
create_ref_fields(vm, &fields, ref_fields)
92+
create_array_ref_fields(vm, type_params[0].clone())
9893
}
9994
}
10095

101-
_ => create_ref_fields(vm, &fields, Vec::new()),
96+
ShapeKind::String => Vec::new(),
97+
98+
_ => create_ref_fields(vm, fields, Vec::new()),
10299
}
103100
}
104101

0 commit comments

Comments
 (0)