From cdbb3ca9b776b066e2c93acfb60da8537d2b1c9b Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sun, 7 Dec 2014 14:15:25 -0500 Subject: libstd: use unboxed closures --- src/libstd/dynamic_lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/libstd/dynamic_lib.rs') 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(f: || -> T) -> Result { + pub fn check_for_errors_in(f: F) -> Result 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(f: || -> T) -> Result { + pub fn check_for_errors_in(f: F) -> Result where + F: FnOnce() -> T, + { unsafe { SetLastError(0); -- cgit 1.4.1-3-g733a5