Skip to content

Commit 6fa4d59

Browse files
committed
---
yaml --- r: 23480 b: refs/heads/master c: c87e9a5 h: refs/heads/master v: v3
1 parent 7f29815 commit 6fa4d59

File tree

3 files changed

+5
-17
lines changed

3 files changed

+5
-17
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: b2aeb314519f69bc949327123d2f6ec4dcd0b9ec
2+
refs/heads/master: c87e9a5815ba4084ca2419eb39786b9bf6d45319
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: cd6f24f9d14ac90d167386a56e7a6ac1f0318195
55
refs/heads/try: ffbe0e0e00374358b789b0037bcb3a577cd218be

trunk/src/libcore/at_vec.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,8 @@ pure fn capacity<T>(&&v: @[const T]) -> uint {
5252
#[inline(always)]
5353
pure fn build_sized<A>(size: uint, builder: fn(push: pure fn(+A))) -> @[A] {
5454
let mut vec = @[];
55-
unsafe {
56-
unsafe::reserve(vec, size);
57-
// This is an awful hack to be able to make the push function
58-
// pure. Is there a better way?
59-
::unsafe::reinterpret_cast::
60-
<fn(push: pure fn(+A)), fn(push: fn(+A))>
61-
(builder)(|+x| unsafe::push(vec, x));
62-
}
55+
unsafe { unsafe::reserve(vec, size); }
56+
builder(|+x| unsafe { unsafe::push(vec, x) });
6357
return vec;
6458
}
6559

trunk/src/libcore/vec.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -234,14 +234,8 @@ pure fn from_slice<T: copy>(t: &[T]) -> ~[T] {
234234
#[inline(always)]
235235
pure fn build_sized<A>(size: uint, builder: fn(push: pure fn(+A))) -> ~[A] {
236236
let mut vec = ~[];
237-
unsafe {
238-
reserve(vec, size);
239-
// This is an awful hack to be able to make the push function
240-
// pure. Is there a better way?
241-
::unsafe::reinterpret_cast::
242-
<fn(push: pure fn(+A)), fn(push: fn(+A))>
243-
(builder)(|+x| push(vec, x));
244-
}
237+
unchecked { reserve(vec, size); }
238+
builder(|+x| unchecked { push(vec, x) });
245239
return vec;
246240
}
247241

0 commit comments

Comments
 (0)