Skip to content

Commit 77b0392

Browse files
committed
---
yaml --- r: 13692 b: refs/heads/master c: b19c98e h: refs/heads/master v: v3
1 parent 924014d commit 77b0392

File tree

9 files changed

+19
-15
lines changed

9 files changed

+19
-15
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 7adad4c6cb1042084b62c35a6577c125f089b3d5
2+
refs/heads/master: b19c98ea9a90cfb018c255af1c9d885076ef9b11
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf

trunk/src/libcore/str.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1727,7 +1727,7 @@ mod unsafe {
17271727
vec::reserve(v, len + 1u);
17281728
vec::as_buf(v) {|b| ptr::memcpy(b, buf, len); }
17291729
vec::unsafe::set_len(v, len);
1730-
v += [0u8];
1730+
vec::push(v, 0u8);
17311731

17321732
assert is_utf8(v);
17331733
ret ::unsafe::transmute(v);

trunk/src/libcore/vec.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,14 +255,18 @@ pure fn slice<T: copy>(v: [const T]/&, start: uint, end: uint) -> [T] {
255255
assert (start <= end);
256256
assert (end <= len(v));
257257
let mut result = [];
258-
unchecked{reserve(result, end - start)}
258+
259+
// unchecked {
260+
// push_all(result, view(v, start, end));
261+
// }
262+
259263
let mut i = start;
260264
while i < end { result += [v[i]]; i += 1u; }
261265
ret result;
262266
}
263267

264268
#[doc = "Return a slice that points into another slice."]
265-
pure fn view<T: copy>(v: [T]/&, start: uint, end: uint) -> [T]/&a {
269+
pure fn view<T: copy>(v: [const T]/&a, start: uint, end: uint) -> [T]/&a {
266270
assert (start <= end);
267271
assert (end <= len(v));
268272
unpack_slice(v) {|p, _len|
@@ -454,6 +458,7 @@ fn push_slow<T>(&v: [const T], +initval: T) {
454458

455459
#[inline(always)]
456460
fn push_all<T: copy>(&v: [const T], rhs: [const T]/&) {
461+
reserve(v, v.len() + rhs.len());
457462
for uint::range(0u, rhs.len()) {|i|
458463
push(v, rhs[i]);
459464
}

trunk/src/libstd/ebml.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ impl writer for writer {
193193
write_vuint(self.writer, tag_id);
194194

195195
// Write a placeholder four-byte size.
196-
self.size_positions += [self.writer.tell()];
196+
vec::push(self.size_positions, self.writer.tell());
197197
let zeroes: [u8]/& = [0u8, 0u8, 0u8, 0u8]/&;
198198
self.writer.write(zeroes);
199199
}

trunk/src/libstd/sort.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ fn merge_sort<T: copy>(le: le<T>, v: [const T]) -> [T] {
4343
let mut b_ix = 0u;
4444
while a_ix < a_len && b_ix < b_len {
4545
if le(a[a_ix], b[b_ix]) {
46-
rs += [a[a_ix]];
46+
vec::push(rs, a[a_ix]);
4747
a_ix += 1u;
48-
} else { rs += [b[b_ix]]; b_ix += 1u; }
48+
} else { vec::push(rs, b[b_ix]); b_ix += 1u; }
4949
}
5050
rs += vec::slice(a, a_ix, a_len);
5151
rs += vec::slice(b, b_ix, b_len);

trunk/src/test/bench/shootout-k-nucleotide.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn sort_and_fmt(mm: hashmap<[u8], uint>, total: uint) -> str {
3636

3737
// map -> [(k,%)]
3838
mm.each(fn&(key: [u8], val: uint) -> bool {
39-
pairs += [(key, pct(val, total))];
39+
vec::push(pairs, (key, pct(val, total)));
4040
ret true;
4141
});
4242

trunk/src/test/bench/shootout-mandelbrot.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ fn chanmb(i: uint, size: uint, ch: comm::chan<line>) -> ()
7272
for uint::range(0_u, size/8_u) {
7373
|j|
7474
let x = {re: xincr*(j as f64) - 1.5f64, im: y};
75-
crv += [fillbyte(x, incr)];
75+
vec::push(crv, fillbyte(x, incr));
7676
};
7777
comm::send(ch, {i:i, b:crv});
7878
}

trunk/src/test/bench/task-perf-one-million.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fn calc(children: uint, parent_ch: comm::chan<msg>) {
2121
iter::repeat (children) {||
2222
alt check comm::recv(port) {
2323
ready(child_ch) {
24-
child_chs += [child_ch];
24+
vec::push(child_chs, child_ch);
2525
}
2626
}
2727
}

trunk/src/test/run-pass/vec-slice.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
// xfail-test
21
fn main() {
3-
let vec<int> v = [1,2,3,4,5];
4-
auto v2 = v.(1,2);
5-
assert (v2.(0) == 2);
6-
assert (v2.(1) == 3);
2+
let v = [1,2,3,4,5];
3+
let v2 = vec::slice(v, 1, 3);
4+
assert (v2[0] == 2);
5+
assert (v2[1] == 3);
76
}

0 commit comments

Comments
 (0)