php-src/ext
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
..
bcmath ext/bcmath: Optimize bcdiv processing (#14660) 2024-08-18 17:57:27 +09:00
bz2 Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
calendar Sync HAVE_<extension> help texts (#15167) 2024-08-02 01:41:47 +02:00
com_dotnet Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
ctype Sync HAVE_<extension> help texts (#15167) 2024-08-02 01:41:47 +02:00
curl Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
date Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
dba Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
dl_test Autotools: Normalize and quote all PHP_NEW_EXTENSION arguments (#15144) 2024-07-29 00:14:59 +02:00
dom Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
enchant Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
exif Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
ffi Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
fileinfo Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
filter Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
ftp Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
gd Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
gettext Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
gmp Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
hash Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
iconv Autotools: Refactor iconv implementation checks (#15357) 2024-08-12 14:43:24 +02:00
intl Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
json Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
ldap Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
libxml Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
mbstring Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
mysqli Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
mysqlnd Remove MYSQLI_TYPE_INTERVAL constant 2024-08-21 12:14:47 +02:00
odbc Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
opcache Remove unused ext/standard/basic_functions.h header inclusions 2024-08-18 18:20:22 +01:00
openssl Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pcntl Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
pcre Autotools: Fix external PCRE JIT check (#15430) 2024-08-16 19:21:13 +02:00
pdo Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_dblib Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_firebird Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_mysql Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_odbc Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_pgsql Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pdo_sqlite Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
pgsql Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
phar Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
posix Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
random Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
readline Autotools: Sync CS in extensions (#15343) 2024-08-11 17:42:26 +02:00
reflection Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
session Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
shmop Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
simplexml Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
skeleton Update extension skeleton .gitignore (#15542) 2024-08-22 19:31:06 +02:00
snmp Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
soap Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sockets Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sodium Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
spl Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sqlite3 Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
standard Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sysvmsg Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sysvsem Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
sysvshm Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
tidy Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
tokenizer Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
xml Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
xmlreader Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
xmlwriter Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
xsl Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
zend_test Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
zip Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
zlib Fix registration of internal readonly child classes (#15459) 2024-08-24 12:36:54 +02:00
ext_skel.php