Lines Matching refs:stack

69 		if (stack->varname) {						\
70 ent.varname = estrdup(stack->varname); \
71 efree(stack->varname); \
72 stack->varname = NULL; \
175 static int wddx_stack_init(wddx_stack *stack) in wddx_stack_init() argument
177 stack->top = 0; in wddx_stack_init()
178 stack->elements = (void **) safe_emalloc(sizeof(void **), STACK_BLOCK_SIZE, 0); in wddx_stack_init()
179 stack->max = STACK_BLOCK_SIZE; in wddx_stack_init()
180 stack->varname = NULL; in wddx_stack_init()
181 stack->done = 0; in wddx_stack_init()
189 static int wddx_stack_push(wddx_stack *stack, void *element, int size) in wddx_stack_push() argument
191 if (stack->top >= stack->max) { /* we need to allocate more memory */ in wddx_stack_push()
192 stack->elements = (void **) erealloc(stack->elements, in wddx_stack_push()
193 (sizeof(void **) * (stack->max += STACK_BLOCK_SIZE))); in wddx_stack_push()
195 stack->elements[stack->top] = (void *) emalloc(size); in wddx_stack_push()
196 memcpy(stack->elements[stack->top], element, size); in wddx_stack_push()
197 return stack->top++; in wddx_stack_push()
203 static int wddx_stack_top(wddx_stack *stack, void **element) in wddx_stack_top() argument
205 if (stack->top > 0) { in wddx_stack_top()
206 *element = stack->elements[stack->top - 1]; in wddx_stack_top()
217 static int wddx_stack_is_empty(wddx_stack *stack) in wddx_stack_is_empty() argument
219 if (stack->top == 0) { in wddx_stack_is_empty()
229 static int wddx_stack_destroy(wddx_stack *stack) in wddx_stack_destroy() argument
233 if (stack->elements) { in wddx_stack_destroy()
234 for (i = 0; i < stack->top; i++) { in wddx_stack_destroy()
235 if (((st_entry *)stack->elements[i])->data) { in wddx_stack_destroy()
236 zval_ptr_dtor(&((st_entry *)stack->elements[i])->data); in wddx_stack_destroy()
238 if (((st_entry *)stack->elements[i])->varname) { in wddx_stack_destroy()
239 efree(((st_entry *)stack->elements[i])->varname); in wddx_stack_destroy()
241 efree(stack->elements[i]); in wddx_stack_destroy()
243 efree(stack->elements); in wddx_stack_destroy()
742 wddx_stack *stack = (wddx_stack *)user_data; in php_wddx_push_element() local
761 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
771 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
792 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
804 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
817 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
825 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
833 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
839 stack->varname = estrdup(atts[i]); in php_wddx_push_element()
878 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
892 if (wddx_stack_top(stack, (void**)&recordset) == SUCCESS && in php_wddx_push_element()
902 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
910 wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry)); in php_wddx_push_element()
920 wddx_stack *stack = (wddx_stack *)user_data; in php_wddx_pop_element() local
928 if (stack->top == 0) { in php_wddx_pop_element()
937 wddx_stack_top(stack, (void**)&ent1); in php_wddx_pop_element()
940 if (stack->top > 1) { in php_wddx_pop_element()
941 stack->top--; in php_wddx_pop_element()
943 stack->done = 1; in php_wddx_pop_element()
975 if (stack->top > 1) { in php_wddx_pop_element()
976 stack->top--; in php_wddx_pop_element()
977 wddx_stack_top(stack, (void**)&ent2); in php_wddx_pop_element()
1041 stack->done = 1; in php_wddx_pop_element()
1043 } else if (!strcmp(name, EL_VAR) && stack->varname) { in php_wddx_pop_element()
1044 efree(stack->varname); in php_wddx_pop_element()
1045 stack->varname = NULL; in php_wddx_pop_element()
1048 wddx_stack_top(stack, (void **)&ent); in php_wddx_pop_element()
1050 stack->top--; in php_wddx_pop_element()
1060 wddx_stack *stack = (wddx_stack *)user_data; in php_wddx_process_data() local
1063 if (!wddx_stack_is_empty(stack) && !stack->done) { in php_wddx_process_data()
1064 wddx_stack_top(stack, (void**)&ent); in php_wddx_process_data()
1145 wddx_stack stack; in php_wddx_deserialize_ex() local
1150 wddx_stack_init(&stack); in php_wddx_deserialize_ex()
1153 XML_SetUserData(parser, &stack); in php_wddx_deserialize_ex()
1161 if (stack.top == 1) { in php_wddx_deserialize_ex()
1162 wddx_stack_top(&stack, (void**)&ent); in php_wddx_deserialize_ex()
1170 wddx_stack_destroy(&stack); in php_wddx_deserialize_ex()