--- embedaddon/php/ext/spl/spl_iterators.h 2012/02/21 23:48:01 1.1.1.1 +++ embedaddon/php/ext/spl/spl_iterators.h 2012/05/29 12:34:42 1.1.1.2 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: spl_iterators.h,v 1.1.1.1 2012/02/21 23:48:01 misho Exp $ */ +/* $Id: spl_iterators.h,v 1.1.1.2 2012/05/29 12:34:42 misho Exp $ */ #ifndef SPL_ITERATORS_H #define SPL_ITERATORS_H @@ -52,6 +52,8 @@ extern PHPAPI zend_class_entry *spl_ce_AppendIterator; extern PHPAPI zend_class_entry *spl_ce_RegexIterator; extern PHPAPI zend_class_entry *spl_ce_RecursiveRegexIterator; extern PHPAPI zend_class_entry *spl_ce_Countable; +extern PHPAPI zend_class_entry *spl_ce_CallbackFilterIterator; +extern PHPAPI zend_class_entry *spl_ce_RecursiveCallbackFilterIterator; PHP_MINIT_FUNCTION(spl_iterators); @@ -75,6 +77,8 @@ typedef enum { DIT_RegexIterator, DIT_RecursiveRegexIterator, #endif + DIT_CallbackFilterIterator, + DIT_RecursiveCallbackFilterIterator, DIT_Unknown = ~0 } dual_it_type; @@ -114,6 +118,11 @@ typedef enum { REGIT_MODE_MAX } regex_mode; +typedef struct _spl_cbfilter_it_intern { + zend_fcall_info fci; + zend_fcall_info_cache fcc; +} _spl_cbfilter_it_intern; + typedef struct _spl_dual_it_object { zend_object std; struct { @@ -154,8 +163,10 @@ typedef struct _spl_dual_it_object { long preg_flags; pcre_cache_entry *pce; char *regex; + uint regex_len; } regex; #endif + _spl_cbfilter_it_intern *cbfilter; } u; } spl_dual_it_object;