helly Mon Nov 1 15:57:24 2004 EDT Modified files: /php-src/ext/standard array.c /php-src/ext/spl spl_array.c spl_array.h spl_directory.c spl_directory.h spl_exceptions.c spl_exceptions.h spl_iterators.c spl_iterators.h Log: - Allow direct access to spl class entries (SPL cannot be build shared)
http://cvs.php.net/diff.php/php-src/ext/standard/array.c?r1=1.279&r2=1.280&ty=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.279 php-src/ext/standard/array.c:1.280 --- php-src/ext/standard/array.c:1.279 Mon Nov 1 07:09:46 2004 +++ php-src/ext/standard/array.c Mon Nov 1 15:57:22 2004 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: array.c,v 1.279 2004/11/01 12:09:46 helly Exp $ */ +/* $Id: array.c,v 1.280 2004/11/01 20:57:22 helly Exp $ */ #include "php.h" #include "php_ini.h" @@ -46,6 +46,9 @@ #include "php_string.h" #include "php_rand.h" #include "php_smart_str.h" +#if HAVE_SPL +#include "ext/spl/spl_array.h" +#endif #ifdef ZTS int array_globals_id; @@ -98,7 +101,6 @@ ZEND_BEGIN_MODULE_GLOBALS(array) int *multisort_flags[2]; int (*compare_func)(zval *result, zval *op1, zval *op2 TSRMLS_DC); - zend_class_entry *php_ce_countable; ZEND_END_MODULE_GLOBALS(array) ZEND_DECLARE_MODULE_GLOBALS(array) @@ -325,14 +327,8 @@ case IS_OBJECT: { #if HAVE_SPL zval *retval; - zend_class_entry **pce; - if (!ARRAYG(php_ce_countable)) { - if (zend_lookup_class("countable", sizeof("countable")-1, &pce TSRMLS_CC) == SUCCESS) { - ARRAYG(php_ce_countable) = *pce; - } - } - if (ARRAYG(php_ce_countable) && instanceof_function(Z_OBJCE_P(array), ARRAYG(php_ce_countable) TSRMLS_CC)) { + if (instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) { zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval); RETVAL_LONG(Z_LVAL_P(retval)); zval_ptr_dtor(&retval); http://cvs.php.net/diff.php/php-src/ext/spl/spl_array.c?r1=1.54&r2=1.55&ty=u Index: php-src/ext/spl/spl_array.c diff -u php-src/ext/spl/spl_array.c:1.54 php-src/ext/spl/spl_array.c:1.55 --- php-src/ext/spl/spl_array.c:1.54 Mon Nov 1 05:45:53 2004 +++ php-src/ext/spl/spl_array.c Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_array.c,v 1.54 2004/11/01 10:45:53 helly Exp $ */ +/* $Id: spl_array.c,v 1.55 2004/11/01 20:57:23 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -114,12 +114,12 @@ }; zend_object_handlers spl_handler_ArrayObject; -zend_class_entry * spl_ce_ArrayObject; +PHPAPI zend_class_entry *spl_ce_ArrayObject; zend_object_handlers spl_handler_ArrayIterator; -zend_class_entry * spl_ce_ArrayIterator; +PHPAPI zend_class_entry *spl_ce_ArrayIterator; -zend_class_entry *spl_ce_Countable; +PHPAPI zend_class_entry *spl_ce_Countable; typedef struct _spl_array_object { zend_object std; http://cvs.php.net/diff.php/php-src/ext/spl/spl_array.h?r1=1.11&r2=1.12&ty=u Index: php-src/ext/spl/spl_array.h diff -u php-src/ext/spl/spl_array.h:1.11 php-src/ext/spl/spl_array.h:1.12 --- php-src/ext/spl/spl_array.h:1.11 Mon Nov 1 05:45:54 2004 +++ php-src/ext/spl/spl_array.h Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_array.h,v 1.11 2004/11/01 10:45:54 helly Exp $ */ +/* $Id: spl_array.h,v 1.12 2004/11/01 20:57:23 helly Exp $ */ #ifndef SPL_ARRAY_H #define SPL_ARRAY_H @@ -24,9 +24,9 @@ #include "php.h" #include "php_spl.h" -extern zend_class_entry *spl_ce_ArrayObject; -extern zend_class_entry *spl_ce_ArrayIterator; -extern zend_class_entry *spl_ce_Countable; +extern PHPAPI zend_class_entry *spl_ce_ArrayObject; +extern PHPAPI zend_class_entry *spl_ce_ArrayIterator; +extern PHPAPI zend_class_entry *spl_ce_Countable; PHP_MINIT_FUNCTION(spl_array); http://cvs.php.net/diff.php/php-src/ext/spl/spl_directory.c?r1=1.29&r2=1.30&ty=u Index: php-src/ext/spl/spl_directory.c diff -u php-src/ext/spl/spl_directory.c:1.29 php-src/ext/spl/spl_directory.c:1.30 --- php-src/ext/spl/spl_directory.c:1.29 Sat Oct 30 10:34:43 2004 +++ php-src/ext/spl/spl_directory.c Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_directory.c,v 1.29 2004/10/30 14:34:43 helly Exp $ */ +/* $Id: spl_directory.c,v 1.30 2004/11/01 20:57:23 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -46,8 +46,8 @@ /* decalre the class entry */ -zend_class_entry *spl_ce_DirectoryIterator; -zend_class_entry *spl_ce_RecursiveDirectoryIterator; +PHPAPI zend_class_entry *spl_ce_DirectoryIterator; +PHPAPI zend_class_entry *spl_ce_RecursiveDirectoryIterator; /* {{{ spl_ce_dir_object_free_storage */ http://cvs.php.net/diff.php/php-src/ext/spl/spl_directory.h?r1=1.6&r2=1.7&ty=u Index: php-src/ext/spl/spl_directory.h diff -u php-src/ext/spl/spl_directory.h:1.6 php-src/ext/spl/spl_directory.h:1.7 --- php-src/ext/spl/spl_directory.h:1.6 Tue Jan 20 15:59:45 2004 +++ php-src/ext/spl/spl_directory.h Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_directory.h,v 1.6 2004/01/20 20:59:45 helly Exp $ */ +/* $Id: spl_directory.h,v 1.7 2004/11/01 20:57:23 helly Exp $ */ #ifndef SPL_DIRECTORY_H #define SPL_DIRECTORY_H @@ -24,8 +24,8 @@ #include "php.h" #include "php_spl.h" -extern zend_class_entry *spl_ce_DirectoryIterator; -extern zend_class_entry *spl_ce_RecursiveDirectoryIterator; +extern PHPAPI zend_class_entry *spl_ce_DirectoryIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveDirectoryIterator; PHP_MINIT_FUNCTION(spl_directory); http://cvs.php.net/diff.php/php-src/ext/spl/spl_exceptions.c?r1=1.3&r2=1.4&ty=u Index: php-src/ext/spl/spl_exceptions.c diff -u php-src/ext/spl/spl_exceptions.c:1.3 php-src/ext/spl/spl_exceptions.c:1.4 --- php-src/ext/spl/spl_exceptions.c:1.3 Mon Nov 1 12:39:59 2004 +++ php-src/ext/spl/spl_exceptions.c Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_exceptions.c,v 1.3 2004/11/01 17:39:59 helly Exp $ */ +/* $Id: spl_exceptions.c,v 1.4 2004/11/01 20:57:23 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -33,18 +33,18 @@ #include "spl_engine.h" #include "spl_exceptions.h" -zend_class_entry *spl_ce_LogicException; -zend_class_entry *spl_ce_BadFunctionCallException; -zend_class_entry *spl_ce_BadMethodCallException; -zend_class_entry *spl_ce_DomainException; -zend_class_entry *spl_ce_InvalidArgumentException; -zend_class_entry *spl_ce_LengthException; -zend_class_entry *spl_ce_OutOfRangeException; -zend_class_entry *spl_ce_RuntimeException; -zend_class_entry *spl_ce_OutOfBoundsException; -zend_class_entry *spl_ce_OverflowException; -zend_class_entry *spl_ce_RangeException; -zend_class_entry *spl_ce_UnderflowException; +PHPAPI zend_class_entry *spl_ce_LogicException; +PHPAPI zend_class_entry *spl_ce_BadFunctionCallException; +PHPAPI zend_class_entry *spl_ce_BadMethodCallException; +PHPAPI zend_class_entry *spl_ce_DomainException; +PHPAPI zend_class_entry *spl_ce_InvalidArgumentException; +PHPAPI zend_class_entry *spl_ce_LengthException; +PHPAPI zend_class_entry *spl_ce_OutOfRangeException; +PHPAPI zend_class_entry *spl_ce_RuntimeException; +PHPAPI zend_class_entry *spl_ce_OutOfBoundsException; +PHPAPI zend_class_entry *spl_ce_OverflowException; +PHPAPI zend_class_entry *spl_ce_RangeException; +PHPAPI zend_class_entry *spl_ce_UnderflowException; #define spl_ce_Exception zend_exception_get_default() http://cvs.php.net/diff.php/php-src/ext/spl/spl_exceptions.h?r1=1.2&r2=1.3&ty=u Index: php-src/ext/spl/spl_exceptions.h diff -u php-src/ext/spl/spl_exceptions.h:1.2 php-src/ext/spl/spl_exceptions.h:1.3 --- php-src/ext/spl/spl_exceptions.h:1.2 Mon Nov 1 12:39:59 2004 +++ php-src/ext/spl/spl_exceptions.h Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_exceptions.h,v 1.2 2004/11/01 17:39:59 helly Exp $ */ +/* $Id: spl_exceptions.h,v 1.3 2004/11/01 20:57:23 helly Exp $ */ #ifndef SPL_EXCEPTIONS_H #define SPL_EXCEPTIONS_H @@ -24,19 +24,19 @@ #include "php.h" #include "php_spl.h" -extern zend_class_entry *spl_ce_LogicException; -extern zend_class_entry *spl_ce_BadFunctionCallException; -extern zend_class_entry *spl_ce_BadMethodCallException; -extern zend_class_entry *spl_ce_DomainException; -extern zend_class_entry *spl_ce_InvalidArgumentException; -extern zend_class_entry *spl_ce_LengthException; -extern zend_class_entry *spl_ce_OutOfRangeException; - -extern zend_class_entry *spl_ce_RuntimeException; -extern zend_class_entry *spl_ce_OutOfBoundsException; -extern zend_class_entry *spl_ce_OverflowException; -extern zend_class_entry *spl_ce_RangeException; -extern zend_class_entry *spl_ce_UnderflowException; +extern PHPAPI zend_class_entry *spl_ce_LogicException; +extern PHPAPI zend_class_entry *spl_ce_BadFunctionCallException; +extern PHPAPI zend_class_entry *spl_ce_BadMethodCallException; +extern PHPAPI zend_class_entry *spl_ce_DomainException; +extern PHPAPI zend_class_entry *spl_ce_InvalidArgumentException; +extern PHPAPI zend_class_entry *spl_ce_LengthException; +extern PHPAPI zend_class_entry *spl_ce_OutOfRangeException; + +extern PHPAPI zend_class_entry *spl_ce_RuntimeException; +extern PHPAPI zend_class_entry *spl_ce_OutOfBoundsException; +extern PHPAPI zend_class_entry *spl_ce_OverflowException; +extern PHPAPI zend_class_entry *spl_ce_RangeException; +extern PHPAPI zend_class_entry *spl_ce_UnderflowException; PHP_MINIT_FUNCTION(spl_exceptions); http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.c?r1=1.50&r2=1.51&ty=u Index: php-src/ext/spl/spl_iterators.c diff -u php-src/ext/spl/spl_iterators.c:1.50 php-src/ext/spl/spl_iterators.c:1.51 --- php-src/ext/spl/spl_iterators.c:1.50 Mon Nov 1 12:39:59 2004 +++ php-src/ext/spl/spl_iterators.c Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.c,v 1.50 2004/11/01 17:39:59 helly Exp $ */ +/* $Id: spl_iterators.c,v 1.51 2004/11/01 20:57:23 helly Exp $ */ #ifdef HAVE_CONFIG_H # include "config.h" @@ -38,20 +38,20 @@ #define INLINE inline -zend_class_entry *spl_ce_RecursiveIterator; -zend_class_entry *spl_ce_RecursiveIteratorIterator; -zend_class_entry *spl_ce_FilterIterator; -zend_class_entry *spl_ce_ParentIterator; -zend_class_entry *spl_ce_SeekableIterator; -zend_class_entry *spl_ce_LimitIterator; -zend_class_entry *spl_ce_CachingIterator; -zend_class_entry *spl_ce_CachingRecursiveIterator; -zend_class_entry *spl_ce_OuterIterator; -zend_class_entry *spl_ce_IteratorIterator; -zend_class_entry *spl_ce_NoRewindIterator; -zend_class_entry *spl_ce_InfiniteIterator; -zend_class_entry *spl_ce_EmptyIterator; -zend_class_entry *spl_ce_AppendIterator; +PHPAPI zend_class_entry *spl_ce_RecursiveIterator; +PHPAPI zend_class_entry *spl_ce_RecursiveIteratorIterator; +PHPAPI zend_class_entry *spl_ce_FilterIterator; +PHPAPI zend_class_entry *spl_ce_ParentIterator; +PHPAPI zend_class_entry *spl_ce_SeekableIterator; +PHPAPI zend_class_entry *spl_ce_LimitIterator; +PHPAPI zend_class_entry *spl_ce_CachingIterator; +PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +PHPAPI zend_class_entry *spl_ce_OuterIterator; +PHPAPI zend_class_entry *spl_ce_IteratorIterator; +PHPAPI zend_class_entry *spl_ce_NoRewindIterator; +PHPAPI zend_class_entry *spl_ce_InfiniteIterator; +PHPAPI zend_class_entry *spl_ce_EmptyIterator; +PHPAPI zend_class_entry *spl_ce_AppendIterator; function_entry spl_funcs_RecursiveIterator[] = { SPL_ABSTRACT_ME(RecursiveIterator, hasChildren, NULL) http://cvs.php.net/diff.php/php-src/ext/spl/spl_iterators.h?r1=1.15&r2=1.16&ty=u Index: php-src/ext/spl/spl_iterators.h diff -u php-src/ext/spl/spl_iterators.h:1.15 php-src/ext/spl/spl_iterators.h:1.16 --- php-src/ext/spl/spl_iterators.h:1.15 Sun Oct 31 19:26:58 2004 +++ php-src/ext/spl/spl_iterators.h Mon Nov 1 15:57:23 2004 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.h,v 1.15 2004/11/01 00:26:58 helly Exp $ */ +/* $Id: spl_iterators.h,v 1.16 2004/11/01 20:57:23 helly Exp $ */ #ifndef SPL_ITERATORS_H #define SPL_ITERATORS_H @@ -24,20 +24,20 @@ #include "php.h" #include "php_spl.h" -extern zend_class_entry *spl_ce_RecursiveIterator; -extern zend_class_entry *spl_ce_RecursiveIteratorIterator; -extern zend_class_entry *spl_ce_FilterIterator; -extern zend_class_entry *spl_ce_ParentIterator; -extern zend_class_entry *spl_ce_SeekableIterator; -extern zend_class_entry *spl_ce_LimitIterator; -extern zend_class_entry *spl_ce_CachingIterator; -extern zend_class_entry *spl_ce_CachingRecursiveIterator; -extern zend_class_entry *spl_ce_OuterIterator; -extern zend_class_entry *spl_ce_IteratorIterator; -extern zend_class_entry *spl_ce_NoRewindIterator; -extern zend_class_entry *spl_ce_InfiniteIterator; -extern zend_class_entry *spl_ce_EmptyIterator; -extern zend_class_entry *spl_ce_AppendIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveIteratorIterator; +extern PHPAPI zend_class_entry *spl_ce_FilterIterator; +extern PHPAPI zend_class_entry *spl_ce_ParentIterator; +extern PHPAPI zend_class_entry *spl_ce_SeekableIterator; +extern PHPAPI zend_class_entry *spl_ce_LimitIterator; +extern PHPAPI zend_class_entry *spl_ce_CachingIterator; +extern PHPAPI zend_class_entry *spl_ce_CachingRecursiveIterator; +extern PHPAPI zend_class_entry *spl_ce_OuterIterator; +extern PHPAPI zend_class_entry *spl_ce_IteratorIterator; +extern PHPAPI zend_class_entry *spl_ce_NoRewindIterator; +extern PHPAPI zend_class_entry *spl_ce_InfiniteIterator; +extern PHPAPI zend_class_entry *spl_ce_EmptyIterator; +extern PHPAPI zend_class_entry *spl_ce_AppendIterator; PHP_MINIT_FUNCTION(spl_iterators);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php