pub use self::imp::init;
pub struct Handler {
- _data: *mut libc::c_void,
+ data: *mut libc::c_void,
}
impl Handler {
}
fn null() -> Handler {
- Handler { _data: crate::ptr::null_mut() }
+ Handler { data: crate::ptr::null_mut() }
}
}
impl Drop for Handler {
fn drop(&mut self) {
unsafe {
- drop_handler(self);
+ drop_handler(self.data);
}
}
}
}
let handler = make_handler();
- MAIN_ALTSTACK.store(handler._data, Ordering::Relaxed);
+ MAIN_ALTSTACK.store(handler.data, Ordering::Relaxed);
mem::forget(handler);
}
pub unsafe fn cleanup() {
- Handler { _data: MAIN_ALTSTACK.load(Ordering::Relaxed) };
+ drop_handler(MAIN_ALTSTACK.load(Ordering::Relaxed));
}
unsafe fn get_stackp() -> *mut libc::c_void {
if stack.ss_flags & SS_DISABLE != 0 {
stack = get_stack();
sigaltstack(&stack, ptr::null_mut());
- Handler { _data: stack.ss_sp as *mut libc::c_void }
+ Handler { data: stack.ss_sp as *mut libc::c_void }
} else {
Handler::null()
}
}
- pub unsafe fn drop_handler(handler: &mut Handler) {
- if !handler._data.is_null() {
+ pub unsafe fn drop_handler(data: *mut libc::c_void) {
+ if !data.is_null() {
let stack = libc::stack_t {
ss_sp: ptr::null_mut(),
ss_flags: SS_DISABLE,
sigaltstack(&stack, ptr::null_mut());
// We know from `get_stackp` that the alternate stack we installed is part of a mapping
// that started one page earlier, so walk back a page and unmap from there.
- munmap(handler._data.sub(page_size()), SIGSTKSZ + page_size());
+ munmap(data.sub(page_size()), SIGSTKSZ + page_size());
}
}
}
super::Handler::null()
}
- pub unsafe fn drop_handler(_handler: &mut super::Handler) {}
+ pub unsafe fn drop_handler(_data: *mut libc::c_void) {}
}