Home | History | Annotate | Download | only in alloc

Lines Matching refs:stack

467  * Create a stack big enough for the worst possible case, where the
469 * TODO: be better about memory usage; use a smaller stack with
472 static bool allocMarkStack(GcMarkStack *stack, size_t maximumSize)
474 const char *name = "dalvik-mark-stack";
477 assert(stack != NULL);
478 stack->length = maximumSize * sizeof(Object*) /
480 addr = dvmAllocRegion(stack->length, PROT_READ | PROT_WRITE, name);
484 stack->base = (const Object **)addr;
485 stack->limit = (const Object **)((char *)addr + stack->length);
486 stack->top = NULL;
487 madvise(stack->base, stack->length, MADV_DONTNEED);
491 static void freeMarkStack(GcMarkStack *stack)
493 assert(stack != NULL);
494 munmap(stack->base, stack->length);
495 memset(stack, 0, sizeof(*stack));
577 if (!allocMarkStack(&gcHeap->markContext.stack, hs->maximumSize)) {
644 freeMarkStack(&(*gcHeap)->markContext.stack);