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

Reply via email to