From d33c138164d069f025439f97920771f1f8c7775e Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 2 Apr 2015 22:04:17 +0200 Subject: Rustup --- src/x11/headless.rs | 12 +++--------- src/x11/window/mod.rs | 4 ++-- 2 files changed, 5 insertions(+), 11 deletions(-) (limited to 'src/x11') diff --git a/src/x11/headless.rs b/src/x11/headless.rs index e23dfa7..291f04d 100644 --- a/src/x11/headless.rs +++ b/src/x11/headless.rs @@ -5,12 +5,6 @@ use libc; use std::{mem, ptr}; use super::ffi; -fn with_c_str(s: &str, f: F) -> T where F: FnOnce(*const libc::c_char) -> T { - use std::ffi::CString; - let c_str = CString::from_slice(s.as_bytes()); - f(c_str.as_ptr()) -} - pub struct HeadlessContext { context: ffi::OSMesaContext, buffer: Vec, @@ -53,9 +47,9 @@ impl HeadlessContext { pub fn get_proc_address(&self, addr: &str) -> *const () { unsafe { - with_c_str(addr, |s| { - ffi::OSMesaGetProcAddress(mem::transmute(s)) as *const () - }) + use std::ffi::CString; + let c_str = CString::new(addr.as_bytes().to_vec()).unwrap(); + ffi::OSMesaGetProcAddress(mem::transmute(c_str.as_ptr())) as *const () } } diff --git a/src/x11/window/mod.rs b/src/x11/window/mod.rs index 7c93ad3..0188386 100644 --- a/src/x11/window/mod.rs +++ b/src/x11/window/mod.rs @@ -39,7 +39,7 @@ fn ensure_thread_init() { fn with_c_str(s: &str, f: F) -> T where F: FnOnce(*const libc::c_char) -> T { use std::ffi::CString; - let c_str = CString::from_slice(s.as_bytes()); + let c_str = CString::new(s.as_bytes().to_vec()).unwrap(); f(c_str.as_ptr()) } @@ -778,7 +778,7 @@ impl Window { MouseCursor::AllScroll | MouseCursor::ZoomIn | MouseCursor::ZoomOut => "left_ptr", }; - let c_string = CString::from_slice(cursor_name.as_bytes()); + let c_string = CString::new(cursor_name.as_bytes().to_vec()).unwrap(); let xcursor = ffi::XcursorLibraryLoadCursor(self.x.display, c_string.as_ptr()); ffi::XDefineCursor (self.x.display, self.x.window, xcursor); ffi::XFlush(self.x.display); -- cgit v1.2.3