summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xext/spl/spl_array.c6
-rwxr-xr-xext/spl/spl_array.h6
-rwxr-xr-xext/spl/spl_directory.c4
-rwxr-xr-xext/spl/spl_directory.h4
-rwxr-xr-xext/spl/spl_exceptions.c24
-rwxr-xr-xext/spl/spl_exceptions.h26
-rwxr-xr-xext/spl/spl_iterators.c28
-rwxr-xr-xext/spl/spl_iterators.h28
-rw-r--r--ext/standard/array.c12
9 files changed, 67 insertions, 71 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index d13b36f2da..c3a037d9dd 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -114,12 +114,12 @@ static zend_function_entry spl_funcs_Countable[] = {
};
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;
diff --git a/ext/spl/spl_array.h b/ext/spl/spl_array.h
index f075be6f91..9bbe5a4711 100755
--- a/ext/spl/spl_array.h
+++ b/ext/spl/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);
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index 3cbd2cacc9..99cebfd72f 100755
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -46,8 +46,8 @@ static zend_object_handlers spl_ce_dir_handlers;
/* 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 */
diff --git a/ext/spl/spl_directory.h b/ext/spl/spl_directory.h
index e7a96d5a4f..23561159a6 100755
--- a/ext/spl/spl_directory.h
+++ b/ext/spl/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);
diff --git a/ext/spl/spl_exceptions.c b/ext/spl/spl_exceptions.c
index afd7536de5..c4f3a6b46f 100755
--- a/ext/spl/spl_exceptions.c
+++ b/ext/spl/spl_exceptions.c
@@ -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()
diff --git a/ext/spl/spl_exceptions.h b/ext/spl/spl_exceptions.h
index 752c988f6a..0f26e677b7 100755
--- a/ext/spl/spl_exceptions.h
+++ b/ext/spl/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);
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c
index 0be7ed61a1..eb9382eb03 100755
--- a/ext/spl/spl_iterators.c
+++ b/ext/spl/spl_iterators.c
@@ -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)
diff --git a/ext/spl/spl_iterators.h b/ext/spl/spl_iterators.h
index c717c532b4..859dd7efc7 100755
--- a/ext/spl/spl_iterators.h
+++ b/ext/spl/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);
diff --git a/ext/standard/array.c b/ext/standard/array.c
index de3016332a..7a4af9a8fd 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -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 @@ php_array_globals array_globals;
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 @@ PHP_FUNCTION(count)
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);