aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/win32/init.rs8
-rw-r--r--src/win32/mod.rs12
2 files changed, 11 insertions, 9 deletions
diff --git a/src/win32/init.rs b/src/win32/init.rs
index d3341fe..77965ea 100644
--- a/src/win32/init.rs
+++ b/src/win32/init.rs
@@ -6,6 +6,7 @@ use {CreationError, Event};
use CreationError::OsError;
use std::cell::RefCell;
+use std::ffi::CString;
use std::rc::Rc;
use std::sync::mpsc::{Sender, Receiver, channel};
@@ -224,11 +225,12 @@ pub fn new_window(builder_dimensions: Option<(uint, uint)>, builder_title: Strin
// loading the extra WGL functions
let extra_functions = gl::wgl_extra::Wgl::load_with(|addr| {
use libc;
- use std::c_str::ToCStr;
+
+ let addr = CString::from_slice(addr.as_bytes());
+ let addr = addr.as_slice_with_nul().as_ptr();
unsafe {
- let addr = addr.to_c_str();
- gl::wgl::GetProcAddress(addr.as_ptr()) as *const libc::c_void
+ gl::wgl::GetProcAddress(addr) as *const libc::c_void
}
});
diff --git a/src/win32/mod.rs b/src/win32/mod.rs
index 9c78a8a..168771d 100644
--- a/src/win32/mod.rs
+++ b/src/win32/mod.rs
@@ -1,5 +1,6 @@
use std::sync::atomic::AtomicBool;
use std::ptr;
+use std::ffi::CString;
use std::collections::RingBuf;
use std::sync::mpsc::Receiver;
use libc;
@@ -256,14 +257,13 @@ impl Window {
/// See the docs in the crate root file.
pub fn get_proc_address(&self, addr: &str) -> *const () {
- use std::c_str::ToCStr;
+ let addr = CString::from_slice(addr.as_bytes());
+ let addr = addr.as_slice_with_nul().as_ptr();
unsafe {
- addr.with_c_str(|s| {
- let p = gl::wgl::GetProcAddress(s) as *const ();
- if !p.is_null() { return p; }
- winapi::GetProcAddress(self.gl_library, s) as *const ()
- })
+ let p = gl::wgl::GetProcAddress(addr) as *const ();
+ if !p.is_null() { return p; }
+ winapi::GetProcAddress(self.gl_library, addr) as *const ()
}
}