diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-01-28 14:28:59 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-01-28 14:28:59 -0800 |
| commit | 2a48aef0a88c22339710ef19b6b45e7b0ca94d01 (patch) | |
| tree | 20abe5b6432d29b03d21241d0683263dd85c07ae /src/libstd | |
| parent | c75cc0aa1073ca91825d6513b9b23068a2a69f5a (diff) | |
| parent | 8eaf0737b75d7984a72bfd4393b4c1a9ab0a88e6 (diff) | |
| download | rust-2a48aef0a88c22339710ef19b6b45e7b0ca94d01.tar.gz rust-2a48aef0a88c22339710ef19b6b45e7b0ca94d01.zip | |
Merge remote-tracking branch 'thestinger/hashmap' into deriving
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/workcache.rs | 24 |
1 files changed, 18 insertions, 6 deletions
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)) } } |
