-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Commit 8d12f66
authored
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.1 parent 6351468 commit 8d12f66
File tree
96 files changed
+405
-446
lines changed- Zend
- build
- ext
- com_dotnet
- curl
- date
- dba
- dom
- enchant
- ffi
- fileinfo
- ftp
- gd
- gmp
- hash
- intl
- breakiterator
- calendar
- collator
- common
- converter
- dateformat
- formatter
- locale
- msgformat
- normalizer
- resourcebundle
- spoofchecker
- timezone
- transliterator
- uchar
- json
- ldap
- libxml
- mysqli
- odbc
- openssl
- pdo_dblib
- pdo_firebird
- pdo_mysql
- pdo_odbc
- pdo_pgsql
- pdo_sqlite
- pdo
- pgsql
- phar
- random
- reflection
- session
- shmop
- simplexml
- snmp
- soap
- sockets
- sodium
- spl
- sqlite3
- standard
- sysvmsg
- sysvsem
- sysvshm
- tidy
- tokenizer
- xmlreader
- xmlwriter
- xml
- xsl
- zend_test
- zip
- zlib
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
96 files changed
+405
-446
lines changedOriginal file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
3493 | 3493 |
| |
3494 | 3494 |
| |
3495 | 3495 |
| |
3496 | - | ||
3496 | + | ||
3497 | + | ||
3498 | + | ||
3497 | 3499 |
| |
3498 | - | ||
3500 | + | ||
3501 | + | ||
3502 | + | ||
3503 | + | ||
3504 | + | ||
3505 | + | ||
3499 | 3506 |
| |
3500 | 3507 |
| |
3501 | 3508 |
| |
| |||
3504 | 3511 |
| |
3505 | 3512 |
| |
3506 | 3513 |
| |
3507 | - | ||
3508 | 3514 |
| |
3509 | 3515 |
| |
3510 | 3516 |
| |
|
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
390 | 390 |
| |
391 | 391 |
| |
392 | 392 |
| |
393 | + | ||
393 | 394 |
| |
394 | 395 |
| |
395 | 396 |
| |
|
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments