summaryrefslogtreecommitdiff
path: root/ext/spl/php_spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/php_spl.c')
-rwxr-xr-xext/spl/php_spl.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index 4467b0aa60..00b1a37f0c 100755
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -62,7 +62,6 @@ zend_module_entry spl_module_entry = {
};
/* }}} */
-zend_namespace *spl_ns_spl;
zend_class_entry *spl_ce_iterator;
zend_class_entry *spl_ce_forward;
zend_class_entry *spl_ce_assoc;
@@ -123,8 +122,6 @@ PHP_MINIT_FUNCTION(spl)
{
ZEND_INIT_MODULE_GLOBALS(spl, spl_init_globals, NULL);
- REGISTER_SPL_NAMESPACE(spl);
-
REGISTER_SPL_INTERFACE(spl, iterator);
REGISTER_SPL_INTF_FUNC(spl, iterator, new_iterator);
@@ -294,11 +291,28 @@ PHP_FUNCTION(class_implements)
}
/* }}} */
+#define SPL_ADD_CLASS(class_name) \
+ spl_add_classes(&spl_ce_ ## class_name, return_value TSRMLS_CC)
+
/* {{{ spl_classes */
PHP_FUNCTION(spl_classes)
{
array_init(return_value);
- zend_hash_apply_with_argument(&spl_ns_spl->class_table, (apply_func_arg_t)spl_add_classes, return_value TSRMLS_CC);
+
+ SPL_ADD_CLASS(iterator);
+ SPL_ADD_CLASS(forward);
+ SPL_ADD_CLASS(sequence);
+ SPL_ADD_CLASS(assoc);
+ SPL_ADD_CLASS(forward_assoc);
+ SPL_ADD_CLASS(sequence_assoc);
+ SPL_ADD_CLASS(array_read);
+ SPL_ADD_CLASS(array_access);
+ SPL_ADD_CLASS(array_access_ex);
+ SPL_ADD_CLASS(array_writer);
+
+#ifdef SPL_ARRAY_WRITE
+ SPL_ADD_CLASS(array_writer_default);
+#endif
}
/* }}} */