From 95786b9426b92a579831b29ebe1824bcc9ea2b00 Mon Sep 17 00:00:00 2001 From: George Peter Banyard Date: Thu, 4 Mar 2021 14:07:21 +0000 Subject: [PATCH] Generate class entries via stubs --- Zend/zend_exceptions.h | 1 + ext/standard/io_exceptions.c | 32 +++-------- ext/standard/io_exceptions.stub.php | 2 +- ext/standard/io_exceptions_arginfo.h | 79 +++++++++++++++++++++++++++- 4 files changed, 87 insertions(+), 27 deletions(-) diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h index 74724c24245a2..abaceb53abeb5 100644 --- a/Zend/zend_exceptions.h +++ b/Zend/zend_exceptions.h @@ -36,6 +36,7 @@ extern ZEND_API zend_class_entry *zend_ce_value_error; extern ZEND_API zend_class_entry *zend_ce_arithmetic_error; extern ZEND_API zend_class_entry *zend_ce_division_by_zero_error; extern ZEND_API zend_class_entry *zend_ce_unhandled_match_error; +extern ZEND_API zend_class_entry *zend_ce_io; ZEND_API void zend_exception_set_previous(zend_object *exception, zend_object *add_previous); ZEND_API void zend_exception_save(void); diff --git a/ext/standard/io_exceptions.c b/ext/standard/io_exceptions.c index 1a4e5f70e0c53..d34e2093dc84b 100644 --- a/ext/standard/io_exceptions.c +++ b/ext/standard/io_exceptions.c @@ -30,35 +30,17 @@ PHPAPI zend_class_entry *zend_ce_insufficient_permissions; PHPAPI zend_class_entry *zend_ce_temporary_failure; PHP_MINIT_FUNCTION(io_exceptions) { - zend_class_entry ce; - /* Register interfaces */ - INIT_CLASS_ENTRY(ce, "FileSystem", class_FileSystem_methods); - zend_ce_filesystem = zend_register_internal_interface(&ce); - - INIT_CLASS_ENTRY(ce, "Network", class_Network_methods); - zend_ce_network = zend_register_internal_interface(&ce); + zend_ce_filesystem = register_class_FileSystem(zend_ce_io); + zend_ce_network = register_class_Network(zend_ce_io); /* Register exceptions */ - INIT_CLASS_ENTRY(ce, "FileSystemError", class_FileSystemError_methods); - zend_ce_filesystem_error = zend_register_internal_class_ex(&ce, zend_ce_exception); - zend_class_implements(zend_ce_filesystem_error, 1, zend_ce_filesystem); - - INIT_CLASS_ENTRY(ce, "FileNotFound", class_FileNotFound_methods); - zend_ce_file_not_found = zend_register_internal_class_ex(&ce, zend_ce_exception); - zend_class_implements(zend_ce_file_not_found, 1, zend_ce_filesystem); - - INIT_CLASS_ENTRY(ce, "NotDirectory", class_FileNotFound_methods); - zend_ce_not_directory = zend_register_internal_class_ex(&ce, zend_ce_exception); - zend_class_implements(zend_ce_not_directory, 1, zend_ce_filesystem); - - INIT_CLASS_ENTRY(ce, "InsufficientPermissions", class_InsufficientPermissions_methods); - zend_ce_insufficient_permissions = zend_register_internal_class_ex(&ce, zend_ce_exception); - zend_class_implements(zend_ce_insufficient_permissions, 1, zend_ce_filesystem); + zend_ce_filesystem_error = register_class_FileSystemError(zend_ce_exception, zend_ce_filesystem); + zend_ce_file_not_found = register_class_FileNotFound(zend_ce_exception, zend_ce_filesystem); + zend_ce_not_directory = register_class_NotDirectory(zend_ce_exception, zend_ce_filesystem); + zend_ce_insufficient_permissions = register_class_InsufficientPermissions(zend_ce_exception, zend_ce_filesystem); - INIT_CLASS_ENTRY(ce, "TemporaryFailure", class_TemporaryFailure_methods); - zend_ce_temporary_failure = zend_register_internal_class_ex(&ce, zend_ce_exception); - zend_class_implements(zend_ce_temporary_failure, 1, zend_ce_network); + zend_ce_temporary_failure = register_class_TemporaryFailure(zend_ce_exception, zend_ce_network); return SUCCESS; } diff --git a/ext/standard/io_exceptions.stub.php b/ext/standard/io_exceptions.stub.php index 06dae6d317e14..88b3ffb17ba6e 100644 --- a/ext/standard/io_exceptions.stub.php +++ b/ext/standard/io_exceptions.stub.php @@ -1,6 +1,6 @@