php-src/ext/mysqli
Máté Kocsis 8d12f666ae
Fix registration of internal readonly child classes (#15459)
Currently, internal classes are registered with the following code:

INIT_CLASS_ENTRY(ce, "InternalClass", class_InternalClass_methods);
class_entry = zend_register_internal_class_ex(&ce, NULL);
class_entry->ce_flags |= ...;

This has worked well so far, except if InternalClass is readonly. It is because some inheritance checks are run by zend_register_internal_class_ex before ZEND_ACC_READONLY_CLASS is added to ce_flags.

The issue is fixed by adding a zend_register_internal_class_with_flags() zend API function that stubs can use from now on. This function makes sure to add the flags before running any checks. Since the new API is not available in lower PHP versions, gen_stub.php has to keep support for the existing API for PHP 8.3 and below.
2024-08-24 12:36:54 +02:00
..
tests Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
config.m4 Autotools: Replace break 2 with break (#15563) 2024-08-24 00:49:13 +02:00
config.w32 Remove outdated code from mysqli Windows build (#14648) 2024-06-24 14:18:14 +02:00
CREDITS
mysqli.c ext/mysqli: Mark return type as zend_return (#15345) 2024-08-11 19:24:53 +01:00
mysqli.stub.php Remove MYSQLI_TYPE_INTERVAL constant 2024-08-21 12:14:47 +02:00
mysqli_api.c ext/mysqli: Minor clean-up (#15526) 2024-08-22 12:34:57 +01:00
mysqli_arginfo.h Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
mysqli_driver.c ext/mysqli: Mark function pointer as returning zend_result (#15342) 2024-08-11 15:47:57 +01:00
mysqli_exception.c Trim trailing whitespace (#14721) 2024-06-29 18:41:45 +02:00
mysqli_mysqlnd.h Remove uses of TRUE/FALSE in mysqli/pdo_mysql 2021-05-26 15:07:23 +02:00
mysqli_nonapi.c Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
mysqli_priv.h Remove MYSQLI_USE_MYSQLND constant and all the code with it 2022-05-30 15:28:08 +01:00
mysqli_prop.c ext/mysqli: Mark function pointer as returning zend_result (#15342) 2024-08-11 15:47:57 +01:00
mysqli_report.c Preferably include from build dir (#13516) 2024-06-26 00:26:43 +02:00
mysqli_result_iterator.c Preferably include from build dir (#13516) 2024-06-26 00:26:43 +02:00
mysqli_warning.c ext/mysqli: Remove PHP 6 remnants 2024-08-11 17:27:09 +02:00
php_mysqli.h Update http->https in license (#6945) 2021-05-06 12:16:35 +02:00
php_mysqli_structs.h ext/mysqli: Mark function pointer as returning zend_result (#15342) 2024-08-11 15:47:57 +01:00