diff options
Diffstat (limited to 'ext/spl/php_spl.c')
| -rwxr-xr-x | ext/spl/php_spl.c | 22 | 
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  }  /* }}} */  | 
