IR: Backport code buffer rollback fix

Cherry-picks https://github.com/dstogov/ir/pull/258.
Prepared via GH-24756.
This commit is contained in:
ndossche committed 2026-10-26 21:10:13 +01:00
1 parent d5c02ea665
commit ddde35ce8b
2 files changed
+4 -4

No files matched your search

+2 -2
View File
@@ -6945,7 +6945,7 @@ void *ir_emit_code(ir_ctx *ctx, size_t *size_ptr)
if (ctx->code_buffer) {
if (ctx->code_buffer->pos == (char*)entry + size) {
/* rollback */
ctx->code_buffer->pos = (char*)entry - size;
ctx->code_buffer->pos = (char*)entry;
}
} else {
ir_mem_unmap(entry, size);
@@ -7068,7 +7068,7 @@ const void *ir_emit_exitgroup(uint32_t first_exit_point, uint32_t exit_points_pe
dasm_free(&dasm_state);
if (code_buffer->pos == (char*)entry + size) {
/* rollback */
code_buffer->pos = (char*)entry - size;
code_buffer->pos = (char*)entry;
}
return NULL;
}
+2 -2
View File
@@ -12267,7 +12267,7 @@ next_block:;
if (ctx->code_buffer) {
if (ctx->code_buffer->pos == (char*)entry + size) {
/* rollback */
ctx->code_buffer->pos = (char*)entry - size;
ctx->code_buffer->pos = (char*)entry;
}
} else {
ir_mem_unmap(entry, size);
@@ -12393,7 +12393,7 @@ const void *ir_emit_exitgroup(uint32_t first_exit_point, uint32_t exit_points_pe
dasm_free(&dasm_state);
if (code_buffer->pos == (char*)entry + size) {
/* rollback */
code_buffer->pos = (char*)entry - size;
code_buffer->pos = (char*)entry;
}
return NULL;
}