diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 97dc047d2f7a6f3b91638ebb253c48716b749d9f..56fa3484294ddf0869f3f5abe776450824a44012 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -218,7 +218,10 @@ pub fn init() { SSL_load_error_strings(); let num_locks = CRYPTO_num_locks(); - let mutexes = Box::new(range(0, num_locks).map(|_| MUTEX_INIT).collect::>()); + let mut mutexes = Box::new(Vec::new()); + for _ in 0..num_locks { + mutexes.push(MUTEX_INIT); + } MUTEXES = mem::transmute(mutexes); let guards: Box>>> = Box::new(range(0, num_locks).map(|_| None).collect());