From 68bfd43eefe42b429a463731fe81d62bf9c27907 Mon Sep 17 00:00:00 2001 From: Dave Huseby Date: Tue, 2 Feb 2016 09:23:33 -0800 Subject: simplifying get_stack --- src/libstd/sys/unix/stack_overflow.rs | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) (limited to 'src/libstd/sys/unix/stack_overflow.rs') diff --git a/src/libstd/sys/unix/stack_overflow.rs b/src/libstd/sys/unix/stack_overflow.rs index f5353895c9d..ee590e1af71 100644 --- a/src/libstd/sys/unix/stack_overflow.rs +++ b/src/libstd/sys/unix/stack_overflow.rs @@ -135,27 +135,7 @@ mod imp { Handler { _data: MAIN_ALTSTACK }; } - #[cfg(any(target_os = "linux", - target_os = "macos", - target_os = "bitrig", - target_os = "netbsd", - target_os = "openbsd"))] - unsafe fn get_stack() -> libc::stack_t { - let stackp = mmap(ptr::null_mut(), - SIGSTKSZ, - PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANON, - -1, - 0); - if stackp == MAP_FAILED { - panic!("failed to allocate an alternative stack"); - } - libc::stack_t { ss_sp: stackp, ss_flags: 0, ss_size: SIGSTKSZ } - } - - #[cfg(any(target_os = "dragonfly", - target_os = "freebsd"))] - unsafe fn get_stack() -> libc::stack_t { + unsafe fn get_stack() -> *mut i8 { let stackp = mmap(ptr::null_mut(), SIGSTKSZ, PROT_READ | PROT_WRITE, @@ -165,12 +145,11 @@ mod imp { if stackp == MAP_FAILED { panic!("failed to allocate an alternative stack"); } - libc::stack_t { ss_sp: stackp as *mut i8, ss_flags: 0, ss_size: SIGSTKSZ } + stackp as *mut i8 } - pub unsafe fn make_handler() -> Handler { - let stack = get_stack(); + let stack = libc::stack_t { ss_sp: get_stack(), ss_flags: 0, ss_size: SIGSTKSZ } sigaltstack(&stack, ptr::null_mut()); Handler { _data: stack.ss_sp as *mut libc::c_void } } -- cgit 1.4.1-3-g733a5