Skip to content

Commit 68bfd43

Browse files
author
Dave Huseby
committed
simplifying get_stack
1 parent 7803c8d commit 68bfd43

File tree

1 file changed

+3
-24
lines changed

1 file changed

+3
-24
lines changed

src/libstd/sys/unix/stack_overflow.rs

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -135,27 +135,7 @@ mod imp {
135135
Handler { _data: MAIN_ALTSTACK };
136136
}
137137

138-
#[cfg(any(target_os = "linux",
139-
target_os = "macos",
140-
target_os = "bitrig",
141-
target_os = "netbsd",
142-
target_os = "openbsd"))]
143-
unsafe fn get_stack() -> libc::stack_t {
144-
let stackp = mmap(ptr::null_mut(),
145-
SIGSTKSZ,
146-
PROT_READ | PROT_WRITE,
147-
MAP_PRIVATE | MAP_ANON,
148-
-1,
149-
0);
150-
if stackp == MAP_FAILED {
151-
panic!("failed to allocate an alternative stack");
152-
}
153-
libc::stack_t { ss_sp: stackp, ss_flags: 0, ss_size: SIGSTKSZ }
154-
}
155-
156-
#[cfg(any(target_os = "dragonfly",
157-
target_os = "freebsd"))]
158-
unsafe fn get_stack() -> libc::stack_t {
138+
unsafe fn get_stack() -> *mut i8 {
159139
let stackp = mmap(ptr::null_mut(),
160140
SIGSTKSZ,
161141
PROT_READ | PROT_WRITE,
@@ -165,12 +145,11 @@ mod imp {
165145
if stackp == MAP_FAILED {
166146
panic!("failed to allocate an alternative stack");
167147
}
168-
libc::stack_t { ss_sp: stackp as *mut i8, ss_flags: 0, ss_size: SIGSTKSZ }
148+
stackp as *mut i8
169149
}
170150

171-
172151
pub unsafe fn make_handler() -> Handler {
173-
let stack = get_stack();
152+
let stack = libc::stack_t { ss_sp: get_stack(), ss_flags: 0, ss_size: SIGSTKSZ }
174153
sigaltstack(&stack, ptr::null_mut());
175154
Handler { _data: stack.ss_sp as *mut libc::c_void }
176155
}

0 commit comments

Comments
 (0)