mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Add count_elements handler for overloaded objects.
This commit is contained in:
parent
5b5b10f0ca
commit
d056b25c3f
4 changed files with 8 additions and 1 deletions
|
@ -44,7 +44,8 @@ static zend_object_handlers iterator_object_handlers = {
|
|||
NULL, /* get_ce */
|
||||
NULL, /* get class name */
|
||||
NULL, /* compare */
|
||||
NULL /* cast */
|
||||
NULL, /* cast */
|
||||
NULL /* count */
|
||||
};
|
||||
|
||||
ZEND_API void zend_register_iterator_wrapper(TSRMLS_D)
|
||||
|
|
|
@ -972,6 +972,7 @@ ZEND_API zend_object_handlers std_object_handlers = {
|
|||
zend_std_object_get_class_name, /* get_class_name */
|
||||
zend_std_compare_objects, /* compare_objects */
|
||||
NULL, /* cast_object */
|
||||
NULL, /* count_elements */
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -93,6 +93,9 @@ typedef int (*zend_object_get_class_name_t)(zval *object, char **class_name, zen
|
|||
typedef int (*zend_object_compare_t)(zval *object1, zval *object2 TSRMLS_DC);
|
||||
typedef int (*zend_object_cast_t)(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
|
||||
|
||||
/* updates *count to hold the number of elements present and returns SUCCESS.
|
||||
* Returns FAILURE if the object does not have any sense of overloaded dimensions */
|
||||
typedef int (*zend_object_count_elements_t)(zval *object, long *count TSRMLS_DC);
|
||||
|
||||
typedef struct _zend_object_handlers {
|
||||
/* general object functions */
|
||||
|
@ -119,6 +122,7 @@ typedef struct _zend_object_handlers {
|
|||
zend_object_get_class_name_t get_class_name;
|
||||
zend_object_compare_t compare_objects;
|
||||
zend_object_cast_t cast_object;
|
||||
zend_object_count_elements_t count_elements;
|
||||
} zend_object_handlers;
|
||||
|
||||
extern ZEND_API zend_object_handlers std_object_handlers;
|
||||
|
|
|
@ -284,6 +284,7 @@ static zend_object_handlers zend_object_proxy_handlers = {
|
|||
NULL, /* get_class_name */
|
||||
NULL, /* compare_objects */
|
||||
NULL, /* cast_object */
|
||||
NULL, /* count_elements */
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue