X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fx86-darwin-os.c;h=121b63b7e1ce1ab381ee021c41cdfd08834c4d35;hb=2c06e3056fe6aa820817a927fa0e840eb7b8edb7;hp=248e782dc0307492df158d0ff7dedfd3194b4621;hpb=e2b2b8f2156ede16d70a0bdd0cfad29ea31b8ccc;p=sbcl.git diff --git a/src/runtime/x86-darwin-os.c b/src/runtime/x86-darwin-os.c index 248e782..121b63b 100644 --- a/src/runtime/x86-darwin-os.c +++ b/src/runtime/x86-darwin-os.c @@ -312,6 +312,7 @@ void call_handler_on_thread(mach_port_t thread, /* Initialize the new state */ new_state = *thread_state; open_stack_allocation(&new_state); + stack_allocate(&new_state, 256); /* Save old state */ save_thread_state = (x86_thread_state32_t *)stack_allocate(&new_state, sizeof(*save_thread_state)); *save_thread_state = *thread_state; @@ -453,27 +454,6 @@ catch_exception_raise(mach_port_t exception_port, protect_control_stack_return_guard_page_thread(0, th); break; } - /* Get vm_region info */ - region_addr = (vm_address_t)code_vector[1]; - info_count = VM_REGION_BASIC_INFO_COUNT; - if ((ret = vm_region(mach_task_self(), - ®ion_addr, - ®ion_size, - VM_REGION_BASIC_INFO, - (vm_region_info_t)®ion_info, - &info_count, - ®ion_name))) - lose("vm_region (VM_REGION_BASIC_INFO) failed failed %d\n", ret); - /* Check if still protected */ - if ((region_info.protection & OS_VM_PROT_ALL) == 0) { - /* KLUDGE: - * If two threads fault on the same page, the protection - * is cleared as the first thread runs memory_fault_handler. - * Grep for "not marked as write-protected" in gencgc.c - */ - ret = KERN_SUCCESS; - break; - } /* Regular memory fault */ handler = memory_fault_handler; break;