Merge branch 'PHP-8.2'

* PHP-8.2:
  Fix segfault when using ReflectionFiber (fixes #10439)
This commit is contained in:
Ilija Tovilo 2023-02-23 23:28:31 +01:00
commit ab99072608
No known key found for this signature in database
GPG key ID: A4F5D403F118200A
6 changed files with 115 additions and 7 deletions

View file

@ -7041,7 +7041,13 @@ ZEND_METHOD(ReflectionFiber, getExecutingLine)
prev_execute_data = fiber->execute_data->prev_execute_data;
}
RETURN_LONG(prev_execute_data->opline->lineno);
while (prev_execute_data && (!prev_execute_data->func || !ZEND_USER_CODE(prev_execute_data->func->common.type))) {
prev_execute_data = prev_execute_data->prev_execute_data;
}
if (prev_execute_data && prev_execute_data->func && ZEND_USER_CODE(prev_execute_data->func->common.type)) {
RETURN_LONG(prev_execute_data->opline->lineno);
}
RETURN_NULL();
}
ZEND_METHOD(ReflectionFiber, getExecutingFile)
@ -7059,7 +7065,13 @@ ZEND_METHOD(ReflectionFiber, getExecutingFile)
prev_execute_data = fiber->execute_data->prev_execute_data;
}
RETURN_STR_COPY(prev_execute_data->func->op_array.filename);
while (prev_execute_data && (!prev_execute_data->func || !ZEND_USER_CODE(prev_execute_data->func->common.type))) {
prev_execute_data = prev_execute_data->prev_execute_data;
}
if (prev_execute_data && prev_execute_data->func && ZEND_USER_CODE(prev_execute_data->func->common.type)) {
RETURN_STR_COPY(prev_execute_data->func->op_array.filename);
}
RETURN_NULL();
}
ZEND_METHOD(ReflectionFiber, getCallable)