From 52439eda9c969e40aa28a3222fedc5145ed87480 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Fri, 13 Feb 2015 16:52:54 +0100 Subject: [PATCH] Cleanup memory.rs a bit. --- components/util/memory.rs | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/components/util/memory.rs b/components/util/memory.rs index 27ee408b363..5249f3709aa 100644 --- a/components/util/memory.rs +++ b/components/util/memory.rs @@ -10,7 +10,6 @@ use std::ffi::CString; use std::old_io::timer::sleep; #[cfg(target_os="linux")] use std::old_io::File; -use std::mem; use std::mem::size_of; #[cfg(target_os="linux")] use std::env::page_size; @@ -213,16 +212,25 @@ fn get_jemalloc_stat(value_name: &str) -> Option { let value_ptr = &mut value as *mut _ as *mut c_void; let mut value_len = size_of::() as size_t; - let mut rv: c_int; - unsafe { - // Using the same values for the `old` and `new` parameters is enough - // to get the statistics updated. - rv = je_mallctl(epoch_c_name.as_ptr(), epoch_ptr, &mut epoch_len, epoch_ptr, epoch_len); - if rv == 0 { - rv = je_mallctl(value_c_name.as_ptr(), value_ptr, &mut value_len, null_mut(), 0); - } + // Using the same values for the `old` and `new` parameters is enough + // to get the statistics updated. + let rv = unsafe { + je_mallctl(epoch_c_name.as_ptr(), epoch_ptr, &mut epoch_len, epoch_ptr, + epoch_len) + }; + if rv != 0 { + return None; } - if rv == 0 { Some(value as u64) } else { None } + + let rv = unsafe { + je_mallctl(value_c_name.as_ptr(), value_ptr, &mut value_len, + null_mut(), 0) + }; + if rv != 0 { + return None; + } + + Some(value as u64) } // Like std::macros::try!, but for Option<>.