Skip to content

Commit dfbc79a

Browse files
authored
Merge branch 'fork' into php/8.4
2 parents 45d3141 + 71cae13 commit dfbc79a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Diff for: src/copy.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ static zend_live_range* pmmpthread_copy_live(zend_live_range *old, int end) {
343343
} /* }}} */
344344

345345
/* {{{ */
346-
static zval* pmmpthread_copy_literals(const pmmpthread_ident_t* owner, zval *old, int last, void *memory) {
346+
static zval* pmmpthread_copy_literals(const pmmpthread_ident_t* owner, zval *old, int last, void *memory, zend_string *func_name, zend_string *filename, uint32_t lineno) {
347347
zval *literals = (zval*) memory;
348348
zval *literal = literals,
349349
*end = literals + last;
@@ -352,8 +352,14 @@ static zval* pmmpthread_copy_literals(const pmmpthread_ident_t* owner, zval *old
352352
memcpy(memory, old, sizeof(zval) * last);
353353
while (literal < end) {
354354
if (pmmpthread_copy_zval(owner, literal, old_literal) == FAILURE) {
355-
ZEND_ASSERT(0); //literals should always be copyable
356-
ZVAL_NULL(literal);
355+
zend_error_at_noreturn(
356+
E_CORE_ERROR,
357+
filename,
358+
lineno,
359+
"pmmpthread encountered a non-copyable literal of type %s in function %s",
360+
zend_zval_type_name(old_literal),
361+
ZSTR_VAL(func_name)
362+
);
357363
}
358364
old_literal++;
359365
literal++;
@@ -603,7 +609,7 @@ static inline zend_function* pmmpthread_copy_user_function(const pmmpthread_iden
603609
}
604610
#endif
605611

606-
if (op_array->literals) op_array->literals = pmmpthread_copy_literals (owner, literals, op_array->last_literal, literals_memory);
612+
if (op_array->literals) op_array->literals = pmmpthread_copy_literals (owner, literals, op_array->last_literal, literals_memory, op_array->function_name, op_array->filename, op_array->line_start);
607613

608614
op_array->opcodes = pmmpthread_copy_opcodes(op_array, literals, opcodes_memory);
609615

0 commit comments

Comments
 (0)