X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fpurify.c;h=90c4669469d4b602400ed56932d6718c708d13b7;hb=f71d9c8d57630ca41e149e03305e678cc3e7fc0f;hp=3440b2f73e0799f1bf7936ece4df1efd445b6ffb;hpb=f87f749ba5ffeb2e51b28c83d01ac7e33a5ca76d;p=sbcl.git diff --git a/src/runtime/purify.c b/src/runtime/purify.c index 3440b2f..90c4669 100644 --- a/src/runtime/purify.c +++ b/src/runtime/purify.c @@ -954,7 +954,7 @@ purify(lispobj static_roots, lispobj read_only_roots) fflush(stdout); #endif pscav((lispobj *)all_threads->control_stack_start, - current_control_stack_pointer - + access_control_stack_pointer(all_threads) - all_threads->control_stack_start, 0); @@ -964,7 +964,7 @@ purify(lispobj static_roots, lispobj read_only_roots) #endif pscav( (lispobj *)all_threads->binding_stack_start, - (lispobj *)current_binding_stack_pointer - + (lispobj *)get_binding_stack_pointer(all_threads) - all_threads->binding_stack_start, 0); @@ -1022,15 +1022,18 @@ purify(lispobj static_roots, lispobj read_only_roots) printf(" cleanup"); fflush(stdout); #endif +#ifdef LISP_FEATURE_HPUX + clear_auto_gc_trigger(); /* restore mmap as it was given by os */ +#endif os_zero((os_vm_address_t) current_dynamic_space, (os_vm_size_t) dynamic_space_size); /* Zero the stack. */ - os_zero((os_vm_address_t) current_control_stack_pointer, + os_zero((os_vm_address_t) access_control_stack_pointer(all_threads), (os_vm_size_t) ((all_threads->control_stack_end - - current_control_stack_pointer) * sizeof(lispobj))); + access_control_stack_pointer(all_threads)) * sizeof(lispobj))); /* It helps to update the heap free pointers so that free_heap can * verify after it's done. */