Home | History | Annotate | Download | only in alloc

Lines Matching refs:stack

513  * Create a stack big enough for the worst possible case, where the
515 * TODO: be better about memory usage; use a smaller stack with
518 static bool allocMarkStack(GcMarkStack *stack, size_t maximumSize)
520 const char *name = "dalvik-mark-stack";
523 assert(stack != NULL);
524 stack->length = maximumSize * sizeof(Object*) /
526 addr = dvmAllocRegion(stack->length, PROT_READ | PROT_WRITE, name);
530 stack->base = (const Object **)addr;
531 stack->limit = (const Object **)((char *)addr + stack->length);
532 stack->top = NULL;
533 madvise(stack->base, stack->length, MADV_DONTNEED);
537 static void freeMarkStack(GcMarkStack *stack)
539 assert(stack != NULL);
540 munmap(stack->base, stack->length);
541 memset(stack, 0, sizeof(*stack));
633 if (!allocMarkStack(&gcHeap->markContext.stack, hs->maximumSize)) {
703 freeMarkStack(&(*gcHeap)->markContext.stack);