From 8eaf0737b75d7984a72bfd4393b4c1a9ab0a88e6 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Mon, 28 Jan 2013 16:06:09 -0500 Subject: get rid of LinearMap's find_copy method --- src/libstd/workcache.rs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) (limited to 'src/libstd/workcache.rs') diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index fbd695aee76..9f46ebef440 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -167,15 +167,27 @@ struct Database { } impl Database { + #[cfg(stage0)] + #[cfg(stage1)] + fn prepare(&mut self, fn_name: &str, + declared_inputs: &WorkMap) -> Option<(WorkMap, WorkMap, ~str)> + { + let k = json_encode(&(fn_name, declared_inputs)); + let db_cache = copy self.db_cache; + match db_cache.find(&k) { + None => None, + Some(&v) => Some(json_decode(copy v)) + } + } - fn prepare(&mut self, - fn_name: &str, - declared_inputs: &WorkMap) -> - Option<(WorkMap, WorkMap, ~str)> { + #[cfg(stage2)] + fn prepare(&mut self, fn_name: &str, + declared_inputs: &WorkMap) -> Option<(WorkMap, WorkMap, ~str)> + { let k = json_encode(&(fn_name, declared_inputs)); - match self.db_cache.find_copy(&k) { + match self.db_cache.find(&k) { None => None, - Some(v) => Some(json_decode(v)) + Some(&v) => Some(json_decode(copy v)) } } -- cgit 1.4.1-3-g733a5