• Home
  • Raw
  • Download

Lines Matching refs:stack

43 static bool createMarkStack(GcMarkStack *stack)  in createMarkStack()  argument
45 assert(stack != NULL); in createMarkStack()
48 madvise(stack->base, length, MADV_NORMAL); in createMarkStack()
49 stack->top = stack->base; in createMarkStack()
57 static void destroyMarkStack(GcMarkStack *stack) in destroyMarkStack() argument
59 assert(stack != NULL); in destroyMarkStack()
60 madvise(stack->base, stack->length, MADV_DONTNEED); in destroyMarkStack()
61 stack->top = NULL; in destroyMarkStack()
67 static void markStackPush(GcMarkStack *stack, const Object *obj) in markStackPush() argument
69 assert(stack != NULL); in markStackPush()
70 assert(stack->base <= stack->top); in markStackPush()
71 assert(stack->limit > stack->top); in markStackPush()
73 *stack->top = obj; in markStackPush()
74 ++stack->top; in markStackPush()
80 static const Object *markStackPop(GcMarkStack *stack) in markStackPop() argument
82 assert(stack != NULL); in markStackPop()
83 assert(stack->base < stack->top); in markStackPop()
84 assert(stack->limit > stack->top); in markStackPop()
85 --stack->top; in markStackPop()
86 return *stack->top; in markStackPop()
93 if (!createMarkStack(&ctx->stack)) { in dvmHeapBeginMarkStep()
122 markStackPush(&ctx->stack, obj); in markObjectNonNull()
475 assert(ctx->stack.top >= ctx->stack.base); in processMarkStack()
476 GcMarkStack *stack = &ctx->stack; in processMarkStack() local
477 while (stack->top > stack->base) { in processMarkStack()
478 const Object *obj = markStackPop(stack); in processMarkStack()
852 destroyMarkStack(&ctx->stack); in dvmHeapFinishMarkStep()