summaryrefslogtreecommitdiff
path: root/Zend/zend_ptr_stack.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2010-07-09 07:31:18 +0000
committerDmitry Stogov <dmitry@php.net>2010-07-09 07:31:18 +0000
commitbc1f1d25fa30805a8f4208829cad241880a486ab (patch)
tree4528a8b65d4a1d6d59a176c555196bee85a6fb57 /Zend/zend_ptr_stack.h
parentb458b1a4c1380cdc2891f2d9827fa770aab878d7 (diff)
downloadphp-git-bc1f1d25fa30805a8f4208829cad241880a486ab.tar.gz
zend_ptr_stack allocation is delayed before the actual usage
Diffstat (limited to 'Zend/zend_ptr_stack.h')
-rw-r--r--Zend/zend_ptr_stack.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h
index affe7d037b..8f2828d54a 100644
--- a/Zend/zend_ptr_stack.h
+++ b/Zend/zend_ptr_stack.h
@@ -46,8 +46,9 @@ END_EXTERN_C()
#define ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count) \
if (stack->top+count > stack->max) { \
/* we need to allocate more memory */ \
- stack->max *= 2; \
- stack->max += count; \
+ do { \
+ stack->max += PTR_STACK_BLOCK_SIZE; \
+ } while (stack->top+count > stack->max); \
stack->elements = (void **) perealloc(stack->elements, (sizeof(void *) * (stack->max)), stack->persistent); \
stack->top_element = stack->elements+stack->top; \
}