mirror of
https://github.com/odin-lang/Odin.git
synced 2026-04-06 06:38:20 +00:00
Fix lb_convert_struct_index for FCD arrays
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user