Lines Matching refs:stack

40 static inline void zend_worklist_stack_prepare(zend_arena **arena, zend_worklist_stack *stack, int …  in zend_worklist_stack_prepare()  argument
44 stack->buf = (int*)zend_arena_calloc(arena, sizeof(*stack->buf), len); in zend_worklist_stack_prepare()
45 stack->len = 0; in zend_worklist_stack_prepare()
46 stack->capacity = len; in zend_worklist_stack_prepare()
49 static inline void zend_worklist_stack_push(zend_worklist_stack *stack, int i) in zend_worklist_stack_push() argument
51 ZEND_ASSERT(stack->len < stack->capacity); in zend_worklist_stack_push()
52 stack->buf[stack->len++] = i; in zend_worklist_stack_push()
55 static inline int zend_worklist_stack_peek(const zend_worklist_stack *stack) in zend_worklist_stack_peek() argument
57 ZEND_ASSERT(stack->len); in zend_worklist_stack_peek()
58 return stack->buf[stack->len - 1]; in zend_worklist_stack_peek()
61 static inline int zend_worklist_stack_pop(zend_worklist_stack *stack) in zend_worklist_stack_pop() argument
63 ZEND_ASSERT(stack->len); in zend_worklist_stack_pop()
64 return stack->buf[--stack->len]; in zend_worklist_stack_pop()
69 zend_worklist_stack stack; member
73 …(w)->stack.buf = (int*)do_alloca(ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len) + sizeof(zend_ulong) * z…
74 (w)->stack.len = 0; \
75 (w)->stack.capacity = _len; \
76 (w)->visited = (zend_bitset)((char*)(w)->stack.buf + ZEND_MM_ALIGNED_SIZE(sizeof(int) * _len)); \
81 free_alloca((w)->stack.buf, use_heap)
87 zend_worklist_stack_prepare(arena, &worklist->stack, len); in zend_worklist_prepare()
92 return worklist->stack.len; in zend_worklist_len()
97 ZEND_ASSERT(i >= 0 && i < worklist->stack.capacity); in zend_worklist_push()
104 zend_worklist_stack_push(&worklist->stack, i); in zend_worklist_push()
110 return zend_worklist_stack_peek(&worklist->stack); in zend_worklist_peek()
116 return zend_worklist_stack_pop(&worklist->stack); in zend_worklist_pop()