diff options
| author | bors <bors@rust-lang.org> | 2013-03-05 21:12:38 -0800 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-03-05 21:12:38 -0800 |
| commit | 165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98 (patch) | |
| tree | 43dcf5c92761891df95bc33c2480426708926e73 /src/libstd | |
| parent | 7c9b808d46d6b718cd25a813c9426c0c199b0acb (diff) | |
| parent | 743cfce7032e3b0649c22bf1c397280192bf9e95 (diff) | |
| download | rust-165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98.tar.gz rust-165cc9e2c424b674a9e6fc88cc7c86ebc7d55b98.zip | |
auto merge of #5213 : erickt/rust/vec-ref, r=graydon
This patch series changes a handful of vec functions to return references instead of copies. The one downside with making this change is that these functions aren't usable in a couple cases now due to some purity complaints. For example, this [change](https://github.com/erickt/rust/commit/c31e81a532fc07e89be33cadb5109d167aa725f4#L1R87). I couldn't figure out a way to get `last` to work on a `@mut ~[...]` type, so I ended up having to use `*crate_cache[crate_cache.len() - 1].metas`.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/bigint.rs | 4 | ||||
| -rw-r--r-- | src/libstd/json.rs | 2 | ||||
| -rw-r--r-- | src/libstd/priority_queue.rs | 2 | ||||
| -rw-r--r-- | src/libstd/workcache.rs | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/libstd/bigint.rs b/src/libstd/bigint.rs index 5a0928e6a11..e8836c58662 100644 --- a/src/libstd/bigint.rs +++ b/src/libstd/bigint.rs @@ -346,7 +346,7 @@ pub impl BigUint { } let mut shift = 0; - let mut n = other.data.last(); + let mut n = *other.data.last(); while n < (1 << BigDigit::bits - 2) { n <<= 1; shift += 1; @@ -384,7 +384,7 @@ pub impl BigUint { } let an = vec::slice(a.data, a.data.len() - n, a.data.len()); - let bn = b.data.last(); + let bn = *b.data.last(); let mut d = ~[]; let mut carry = 0; for vec::rev_each(an) |elt| { diff --git a/src/libstd/json.rs b/src/libstd/json.rs index d1a65517aad..7993f15f622 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -759,7 +759,7 @@ pub fn Decoder(json: Json) -> Decoder { priv impl Decoder { fn peek(&self) -> &self/Json { if self.stack.len() == 0 { self.stack.push(&self.json); } - vec::last(self.stack) + self.stack[self.stack.len() - 1] } fn pop(&self) -> &self/Json { diff --git a/src/libstd/priority_queue.rs b/src/libstd/priority_queue.rs index 4b92bd7543a..2a2c655cca9 100644 --- a/src/libstd/priority_queue.rs +++ b/src/libstd/priority_queue.rs @@ -197,7 +197,7 @@ mod tests { let mut sorted = merge_sort(data, le); let mut heap = from_vec(data); while !heap.is_empty() { - assert *heap.top() == sorted.last(); + assert heap.top() == sorted.last(); assert heap.pop() == sorted.pop(); } } diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index 1dd7bfd75db..c46c2d17ed0 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -174,7 +174,7 @@ pub impl Database { let k = json_encode(&(fn_name, declared_inputs)); match self.db_cache.find(&k) { None => None, - Some(&v) => Some(json_decode(copy v)) + Some(v) => Some(json_decode(*v)) } } |
