diff options
author | SVN Migration <svn@php.net> | 1999-07-25 15:06:50 +0000 |
---|---|---|
committer | SVN Migration <svn@php.net> | 1999-07-25 15:06:50 +0000 |
commit | 5bfa70242fb1f579e33cd02d0a4088387176ba7c (patch) | |
tree | 71c86814c79b7885ea40beb22e7d63097394a770 /Zend/zend_stack.c | |
parent | b1617d8ac3bad1ace92085194e24cff8cbdbaf31 (diff) | |
download | php-git-BEFORE_NEW_OPERATOR_FIX.tar.gz |
This commit was manufactured by cvs2svn to create tagBEFORE_NEW_OPERATOR_FIX
'BEFORE_NEW_OPERATOR_FIX'.
Diffstat (limited to 'Zend/zend_stack.c')
-rw-r--r-- | Zend/zend_stack.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c index 1a4b062add..0f3b0f6aac 100644 --- a/Zend/zend_stack.c +++ b/Zend/zend_stack.c @@ -116,3 +116,41 @@ ZEND_API int zend_stack_count(zend_stack *stack) { return stack->top; } + + +ZEND_API void zend_stack_apply(zend_stack *stack, void (*apply_function)(void *element), int type) +{ + int i; + + switch (type) { + case ZEND_STACK_APPLY_TOPDOWN: + for (i=stack->top-1; i>=0; i--) { + apply_function(stack->elements[i]); + } + break; + case ZEND_STACK_APPLY_BOTTOMUP: + for (i=0; i<stack->top; i++) { + apply_function(stack->elements[i]); + } + break; + } +} + + +ZEND_API void zend_stack_apply_with_argument(zend_stack *stack, void (*apply_function)(void *element, void *arg), int type, void *arg) +{ + int i; + + switch (type) { + case ZEND_STACK_APPLY_TOPDOWN: + for (i=stack->top-1; i>=0; i--) { + apply_function(stack->elements[i], arg); + } + break; + case ZEND_STACK_APPLY_BOTTOMUP: + for (i=0; i<stack->top; i++) { + apply_function(stack->elements[i], arg); + } + break; + } +} |