cvs: php-src /ext/com_dotnet com_handlers.c com_saproxy.c /ext/simplexml simplexml.c /ext/standard array.c

From: Date: Tue, 04 May 2004 15:03:48 +0000
Subject: cvs: php-src /ext/com_dotnet com_handlers.c com_saproxy.c /ext/simplexml simplexml.c /ext/standard array.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-27253@lists.php.net to get a copy of this message
wez Tue May 4 11:03:48 2004 EDT Modified files: /php-src/ext/com_dotnet com_handlers.c com_saproxy.c /php-src/ext/simplexml simplexml.c /php-src/ext/standard array.c Log: Update for count_elements handler for overloaded objects. http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_handlers.c?r1=1.21&r2=1.22&ty=u Index: php-src/ext/com_dotnet/com_handlers.c diff -u php-src/ext/com_dotnet/com_handlers.c:1.21 php-src/ext/com_dotnet/com_handlers.c:1.22 --- php-src/ext/com_dotnet/com_handlers.c:1.21 Mon May 3 16:10:57 2004 +++ php-src/ext/com_dotnet/com_handlers.c Tue May 4 11:03:48 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_handlers.c,v 1.21 2004/05/03 20:10:57 wez Exp $ */ +/* $Id: com_handlers.c,v 1.22 2004/05/04 15:03:48 wez Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -548,6 +548,25 @@ return SUCCESS; } +static int com_object_count(zval *object, long *count TSRMLS_DC) +{ + php_com_dotnet_object *obj; + LONG ubound = 0, lbound = 0; + + obj = CDNO_FETCH(object); + + if (!V_ISARRAY(&obj->v)) { + return FAILURE; + } + + SafeArrayGetLBound(V_ARRAY(&obj->v), 1, &lbound); + SafeArrayGetUBound(V_ARRAY(&obj->v), 1, &ubound); + + *count = ubound - lbound + 1; + + return SUCCESS; +} + zend_object_handlers php_com_object_handlers = { ZEND_OBJECTS_STORE_HANDLERS, com_property_read, @@ -568,7 +587,8 @@ com_class_entry_get, com_class_name_get, com_objects_compare, - com_object_cast + com_object_cast, + com_object_count }; void php_com_object_enable_event_sink(php_com_dotnet_object *obj, int enable TSRMLS_DC) http://cvs.php.net/diff.php/php-src/ext/com_dotnet/com_saproxy.c?r1=1.11&r2=1.12&ty=u Index: php-src/ext/com_dotnet/com_saproxy.c diff -u php-src/ext/com_dotnet/com_saproxy.c:1.11 php-src/ext/com_dotnet/com_saproxy.c:1.12 --- php-src/ext/com_dotnet/com_saproxy.c:1.11 Mon May 3 16:10:57 2004 +++ php-src/ext/com_dotnet/com_saproxy.c Tue May 4 11:03:48 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: com_saproxy.c,v 1.11 2004/05/03 20:10:57 wez Exp $ */ +/* $Id: com_saproxy.c,v 1.12 2004/05/04 15:03:48 wez Exp $ */ /* This module implements a SafeArray proxy which is used internally * by the engine when resolving multi-dimensional array accesses on @@ -362,6 +362,23 @@ return FAILURE; } +static int saproxy_count_elements(zval *object, long *count TSRMLS_DC) +{ + php_com_saproxy *proxy = SA_FETCH(object); + LONG ubound, lbound; + + if (!V_ISARRAY(&proxy->obj->v)) { + return FAILURE; + } + + SafeArrayGetLBound(V_ARRAY(&proxy->obj->v), proxy->dimensions, &lbound); + SafeArrayGetUBound(V_ARRAY(&proxy->obj->v), proxy->dimensions, &ubound); + + *count = ubound - lbound + 1; + + return SUCCESS; +} + zend_object_handlers php_com_saproxy_handlers = { ZEND_OBJECTS_STORE_HANDLERS, saproxy_property_read, @@ -382,7 +399,8 @@ saproxy_class_entry_get, saproxy_class_name_get, saproxy_objects_compare, - saproxy_object_cast + saproxy_object_cast, + saproxy_count_elements }; static void saproxy_free_storage(void *object TSRMLS_DC) http://cvs.php.net/diff.php/php-src/ext/simplexml/simplexml.c?r1=1.138&r2=1.139&ty=u Index: php-src/ext/simplexml/simplexml.c diff -u php-src/ext/simplexml/simplexml.c:1.138 php-src/ext/simplexml/simplexml.c:1.139 --- php-src/ext/simplexml/simplexml.c:1.138 Mon Mar 29 14:58:01 2004 +++ php-src/ext/simplexml/simplexml.c Tue May 4 11:03:48 2004 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: simplexml.c,v 1.138 2004/03/29 19:58:01 helly Exp $ */ +/* $Id: simplexml.c,v 1.139 2004/05/04 15:03:48 wez Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1077,7 +1077,8 @@ NULL, /* zend_get_std_object_handlers()->get_class_entry,*/ NULL, /* zend_get_std_object_handlers()->get_class_name,*/ sxe_objects_compare, - sxe_object_cast + sxe_object_cast, + NULL }; /* {{{ sxe_object_clone() @@ -1650,7 +1651,7 @@ { php_info_print_table_start(); php_info_print_table_header(2, "Simplexml support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.138 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.139 $"); php_info_print_table_row(2, "Schema support", #ifdef LIBXML_SCHEMAS_ENABLED "enabled"); http://cvs.php.net/diff.php/php-src/ext/standard/array.c?r1=1.260&r2=1.261&ty=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.260 php-src/ext/standard/array.c:1.261 --- php-src/ext/standard/array.c:1.260 Thu Apr 1 17:07:42 2004 +++ php-src/ext/standard/array.c Tue May 4 11:03:48 2004 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.260 2004/04/01 22:07:42 iliaa Exp $ */ +/* $Id: array.c,v 1.261 2004/05/04 15:03:48 wez Exp $ */ #include "php.h" #include "php_ini.h" @@ -290,6 +290,13 @@ case IS_ARRAY: RETURN_LONG (php_count_recursive (array, mode TSRMLS_CC)); break; + case IS_OBJECT: + if (Z_OBJ_HT(*array)->count_elements) { + RETVAL_LONG(1); + if (SUCCESS == Z_OBJ_HT(*array)->count_elements(array, &Z_LVAL_P(return_value) TSRMLS_CC)) { + return; + } + } default: RETURN_LONG(1); break;

« previous php.cvs (#27253) next »