mirror of
https://github.com/php/php-src.git
synced 2026-10-28 17:56:50 +08:00
IR: Backport code buffer rollback fix
Cherry-picks https://github.com/dstogov/ir/pull/258. Prepared via GH-24756.
This commit is contained in:
2 files changed
+4
-4
No files matched your search
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user