From: Nikita Popov Date: Tue, 16 Feb 2021 11:34:00 +0000 (+0100) Subject: Merge branch 'PHP-8.0' X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f04f162a6f9db6cc3019bb617062aa5e0d2101f;p=php Merge branch 'PHP-8.0' * PHP-8.0: Fixed bug #80723 --- 1f04f162a6f9db6cc3019bb617062aa5e0d2101f diff --cc Zend/zend_object_handlers.h index 1eca06f266,5134230354..71c0168372 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@@ -222,12 -210,16 +222,16 @@@ ZEND_API void zend_std_unset_dimension( ZEND_API zend_function *zend_std_get_method(zend_object **obj_ptr, zend_string *method_name, const zval *key); ZEND_API zend_string *zend_std_get_class_name(const zend_object *zobj); ZEND_API int zend_std_compare_objects(zval *o1, zval *o2); -ZEND_API int zend_std_get_closure(zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, zend_bool check_only); +ZEND_API int zend_std_get_closure(zend_object *obj, zend_class_entry **ce_ptr, zend_function **fptr_ptr, zend_object **obj_ptr, bool check_only); ZEND_API void rebuild_object_properties(zend_object *zobj); + /* Handler for objects that cannot be meaningfully compared. + * Only objects with the same identity will be considered equal. */ + ZEND_API int zend_objects_not_comparable(zval *o1, zval *o2); + ZEND_API int zend_check_protected(zend_class_entry *ce, zend_class_entry *scope); -ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name, zend_bool is_dynamic); +ZEND_API int zend_check_property_access(zend_object *zobj, zend_string *prop_info_name, bool is_dynamic); ZEND_API zend_function *zend_get_call_trampoline_func(zend_class_entry *ce, zend_string *method_name, int is_static); diff --cc ext/sockets/sockets.c index 204fa98a47,368e61b0ed..5bc058c4b7 --- a/ext/sockets/sockets.c +++ b/ext/sockets/sockets.c @@@ -443,8 -446,12 +443,9 @@@ static PHP_MINIT_FUNCTION(sockets socket_object_handlers.get_constructor = socket_get_constructor; socket_object_handlers.clone_obj = NULL; socket_object_handlers.get_gc = socket_get_gc; + socket_object_handlers.compare = zend_objects_not_comparable; - zend_class_entry ce_address_info; - INIT_CLASS_ENTRY(ce_address_info, "AddressInfo", class_AddressInfo_methods); - address_info_ce = zend_register_internal_class(&ce_address_info); - address_info_ce->ce_flags |= ZEND_ACC_FINAL | ZEND_ACC_NO_DYNAMIC_PROPERTIES; + address_info_ce = register_class_AddressInfo(); address_info_ce->create_object = address_info_create_object; address_info_ce->serialize = zend_class_serialize_deny; address_info_ce->unserialize = zend_class_unserialize_deny;