diff options
Diffstat (limited to 'openssl-sys/src')
| -rw-r--r-- | openssl-sys/src/lib.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 7471616f..fb1ecb78 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -211,14 +211,15 @@ pub fn init() { static mut INIT: Once = ONCE_INIT; unsafe { - INIT.doit(|| { + INIT.call_once(|| { SSL_library_init(); SSL_load_error_strings(); let num_locks = CRYPTO_num_locks(); - let mutexes = box Vec::from_fn(num_locks as uint, |_| MUTEX_INIT); + let mutexes = box range(0, num_locks).map(|_| MUTEX_INIT).collect::<Vec<_>>(); MUTEXES = mem::transmute(mutexes); - let guards: Box<Vec<Option<MutexGuard<()>>>> = box Vec::from_fn(num_locks as uint, |_| None); + let guards: Box<Vec<Option<MutexGuard<()>>>> = + box range(0, num_locks).map(|_| None).collect(); GUARDS = mem::transmute(guards); CRYPTO_set_locking_callback(locking_function); |