diff options
| author | Roy Frostig <[email protected]> | 2010-08-10 11:40:33 -0700 |
|---|---|---|
| committer | Roy Frostig <[email protected]> | 2010-08-10 11:40:33 -0700 |
| commit | 75e46cc4d0fbd8f1a1c4676931119a858fafeacf (patch) | |
| tree | 01e5ebe1a0a64fafaa56548d20ca790f712fd666 /src | |
| parent | Get object's captured typarams when querying for an object method's typarams ... (diff) | |
| download | rust-75e46cc4d0fbd8f1a1c4676931119a858fafeacf.tar.xz rust-75e46cc4d0fbd8f1a1c4676931119a858fafeacf.zip | |
Fix a deque size bookkeeping bug.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/deque.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/deque.rs b/src/lib/deque.rs index bf7acb53..3f2a81a4 100644 --- a/src/lib/deque.rs +++ b/src/lib/deque.rs @@ -47,7 +47,7 @@ fn create[T]() -> t[T] { ret _vec.init_fn[cell[T]](copy_op, nalloc); } - fn get[T](&vec[cell[T]] elts, uint i) -> T { + fn get[T](vec[cell[T]] elts, uint i) -> T { alt (elts.(i)) { case (util.some[T](t)) { ret t; } case (_) { fail; } @@ -100,6 +100,7 @@ fn create[T]() -> t[T] { let T t = get[T](elts, lo); elts.(lo) = util.none[T](); lo = (lo + 1u) % _vec.len[cell[T]](elts); + nelts -= 1u; ret t; } @@ -112,6 +113,7 @@ fn create[T]() -> t[T] { let T t = get[T](elts, hi); elts.(hi) = util.none[T](); + nelts -= 1u; ret t; } |