Lines Matching refs:stack
15 PetscErrorCode PetscIntStackDestroy(PetscIntStack stack) in PetscIntStackDestroy() argument
18 PetscAssertPointer(stack, 1); in PetscIntStackDestroy()
19 PetscCall(PetscFree(stack->stack)); in PetscIntStackDestroy()
20 PetscCall(PetscFree(stack)); in PetscIntStackDestroy()
39 PetscErrorCode PetscIntStackEmpty(PetscIntStack stack, PetscBool *empty) in PetscIntStackEmpty() argument
42 PetscAssertPointer(stack, 1); in PetscIntStackEmpty()
44 *empty = stack->top == -1 ? PETSC_TRUE : PETSC_FALSE; in PetscIntStackEmpty()
63 PetscErrorCode PetscIntStackTop(PetscIntStack stack, int *top) in PetscIntStackTop() argument
66 PetscAssertPointer(stack, 1); in PetscIntStackTop()
68 *top = stack->stack[stack->top]; in PetscIntStackTop()
85 PetscErrorCode PetscIntStackPush(PetscIntStack stack, int item) in PetscIntStackPush() argument
88 PetscAssertPointer(stack, 1); in PetscIntStackPush()
89 if (++stack->top >= stack->max) { in PetscIntStackPush()
90 stack->max *= 2; in PetscIntStackPush()
91 PetscCall(PetscRealloc(stack->max * sizeof(*stack->stack), &stack->stack)); in PetscIntStackPush()
93 stack->stack[stack->top] = item; in PetscIntStackPush()
112 PetscErrorCode PetscIntStackPop(PetscIntStack stack, int *item) in PetscIntStackPop() argument
115 PetscAssertPointer(stack, 1); in PetscIntStackPop()
116 PetscCheck(stack->top != -1, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, "Stack is empty"); in PetscIntStackPop()
119 PetscCall(PetscIntStackTop(stack, item)); in PetscIntStackPop()
121 --stack->top; in PetscIntStackPop()
137 PetscErrorCode PetscIntStackCreate(PetscIntStack *stack) in PetscIntStackCreate() argument
140 PetscAssertPointer(stack, 1); in PetscIntStackCreate()
141 PetscCall(PetscNew(stack)); in PetscIntStackCreate()
143 (*stack)->top = -1; in PetscIntStackCreate()
144 (*stack)->max = 128; in PetscIntStackCreate()
146 PetscCall(PetscCalloc1((*stack)->max, &(*stack)->stack)); in PetscIntStackCreate()