fix source of vmap baking determinism issue, + fix use-after-free from cross-lane scratch usage

This commit is contained in:
Ryan Fleury
2026-04-20 14:06:34 -07:00
parent 43c3d5e348
commit 16ea060382
2 changed files with 3 additions and 2 deletions
+1
View File
@@ -4837,6 +4837,7 @@ p2r_convert(Arena *arena, P2R_ConvertParams *params)
result.line_tables = all_line_tables; result.line_tables = all_line_tables;
} }
lane_sync();
scratch_end(scratch); scratch_end(scratch);
return result; return result;
} }
+2 -2
View File
@@ -881,7 +881,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params)
} }
} }
} }
lane_sync();
scratch_end(scratch); scratch_end(scratch);
} }
lane_sync(); lane_sync();
@@ -3202,7 +3202,7 @@ rdim_bake(Arena *arena, RDIM_BakeParams *params)
for EachNode(case_n, RDIM_LocationCase, s->location_cases.first) for EachNode(case_n, RDIM_LocationCase, s->location_cases.first)
{ {
lane_chunk_constant_data_counts[slot_idx] += case_n->location.value_data.size; lane_chunk_constant_data_counts[slot_idx] += case_n->location.value_data.size;
lane_chunk_bytecode_data_counts[slot_idx] += case_n->location.bytecode.encoded_size; lane_chunk_bytecode_data_counts[slot_idx] += case_n->location.bytecode.encoded_size + 1; // NOTE(rjf): +1 for the `stop` op
} }
} }
chunk_idx += 1; chunk_idx += 1;