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