about summary refs log tree commit diff
path: root/src/libstd/dynamic_lib.rs
diff options
context:
space:
mode:
authorJorge Aparicio <japaricious@gmail.com>2014-12-07 14:15:25 -0500
committerJorge Aparicio <japaricious@gmail.com>2014-12-13 17:03:47 -0500
commitcdbb3ca9b776b066e2c93acfb60da8537d2b1c9b (patch)
tree18a305205c51df4501a5e5e73c4b275242fb5a25 /src/libstd/dynamic_lib.rs
parentbe53d619f874cbe8e4d87f900060561d16405d53 (diff)
downloadrust-cdbb3ca9b776b066e2c93acfb60da8537d2b1c9b.tar.gz
rust-cdbb3ca9b776b066e2c93acfb60da8537d2b1c9b.zip
libstd: use unboxed closures
Diffstat (limited to 'src/libstd/dynamic_lib.rs')
-rw-r--r--src/libstd/dynamic_lib.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libstd/dynamic_lib.rs b/src/libstd/dynamic_lib.rs
index 96b075ab569..ebb2a491b4a 100644
--- a/src/libstd/dynamic_lib.rs
+++ b/src/libstd/dynamic_lib.rs
@@ -216,6 +216,7 @@ pub mod dl {
     use c_str::{CString, ToCStr};
     use libc;
     use kinds::Copy;
+    use ops::FnOnce;
     use ptr;
     use result::*;
     use result::Result::{Err, Ok};
@@ -231,7 +232,9 @@ pub mod dl {
         dlopen(ptr::null(), Lazy as libc::c_int) as *mut u8
     }
 
-    pub fn check_for_errors_in<T>(f: || -> T) -> Result<T, String> {
+    pub fn check_for_errors_in<T, F>(f: F) -> Result<T, String> where
+        F: FnOnce() -> T,
+    {
         use sync::{StaticMutex, MUTEX_INIT};
         static LOCK: StaticMutex = MUTEX_INIT;
         unsafe {
@@ -312,7 +315,9 @@ pub mod dl {
         handle as *mut u8
     }
 
-    pub fn check_for_errors_in<T>(f: || -> T) -> Result<T, String> {
+    pub fn check_for_errors_in<T, F>(f: F) -> Result<T, String> where
+        F: FnOnce() -> T,
+    {
         unsafe {
             SetLastError(0);