mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Merge branch 'PHP-8.5'
* PHP-8.5: Revert "Fix GH-20890: Segfault in zval_undefined_cv with non-simple property hook with minimal tracing JIT"
This commit is contained in:
@@ -345,14 +345,6 @@ static int zend_jit_trace_may_exit(const zend_op_array *op_array, const zend_op
|
||||
// TODO: recompilation may change target ???
|
||||
return 0;
|
||||
#endif
|
||||
case ZEND_FETCH_OBJ_R:
|
||||
if (opline->op2_type == IS_CONST) {
|
||||
const zend_class_entry *ce = opline->op1_type == IS_UNUSED ? op_array->scope : NULL;
|
||||
if (!ce || !(ce->ce_flags & ZEND_ACC_FINAL) || ce->num_hooked_props > 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ZEND_RETURN_BY_REF:
|
||||
case ZEND_RETURN:
|
||||
/* return */
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
--TEST--
|
||||
GH-20890 (Segfault in zval_undefined_cv with non-simple property hook with minimal tracing JIT)
|
||||
--CREDITS--
|
||||
Moonster8282
|
||||
--EXTENSIONS--
|
||||
opcache
|
||||
--INI--
|
||||
opcache.jit=1251
|
||||
--FILE--
|
||||
<?php
|
||||
class HookJIT {
|
||||
private int $readCount = 0;
|
||||
|
||||
public int $computed {
|
||||
get {
|
||||
$this->readCount++;
|
||||
return $this->readCount * 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function hook_hot_path($obj, $iterations) {
|
||||
$sum = 0;
|
||||
for ($i = 0; $i < $iterations; $i++) {
|
||||
$sum += $obj->computed;
|
||||
}
|
||||
return $sum;
|
||||
}
|
||||
|
||||
echo "Testing property hook in hot path...\n";
|
||||
$obj = new HookJIT();
|
||||
$result = hook_hot_path($obj, 100);
|
||||
echo "Result: $result\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
Testing property hook in hot path...
|
||||
Result: 10100
|
||||
Reference in New Issue
Block a user