Fix lb_convert_struct_index for FCD arrays

This commit is contained in:
gingerBill
2026-03-15 15:45:29 +00:00
parent a0685f0511
commit c23d2793df

View File

@@ -1061,6 +1061,17 @@ gb_internal i32 lb_convert_struct_index(lbModule *m, Type *t, i32 index) {
break;
}
}
if (t->kind == Type_FixedCapacityDynamicArray) {
switch (index) {
case 0: return 0; // data
case 1:
if (t->FixedCapacityDynamicArray.padding_needed > 0) {
return 2;
}
return 1;
}
}
return index;
}
@@ -1404,6 +1415,12 @@ gb_internal lbValue lb_emit_struct_ev(lbProcedure *p, lbValue s, i32 index) {
}
break;
case Type_FixedCapacityDynamicArray:
switch (index) {
case 0: result_type = alloc_type_array(t->FixedCapacityDynamicArray.elem, t->FixedCapacityDynamicArray.capacity); break;
case 1: result_type = t_int; break;
}
case Type_Map:
{
init_map_internal_debug_types(t);