about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2012-03-28 21:04:13 -0700
committerPatrick Walton <pcwalton@mimiga.net>2012-03-29 08:41:25 -0700
commit5ce3d35f4170ecbf6a0efbc3cd7cdcb451c79837 (patch)
tree88b2d6c593a45d1b84328aa5a84f079c61b318d7 /src
parent26630187920a8b3f1b2f2d73f0172addd6c35ccd (diff)
downloadrust-5ce3d35f4170ecbf6a0efbc3cd7cdcb451c79837.tar.gz
rust-5ce3d35f4170ecbf6a0efbc3cd7cdcb451c79837.zip
rustc: Don't zero out arena chunks with vec::from_elem; that's slow because it calls the glue.
Diffstat (limited to 'src')
-rw-r--r--src/libstd/arena.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libstd/arena.rs b/src/libstd/arena.rs
index 6d8bc9fa0c3..b066232cd23 100644
--- a/src/libstd/arena.rs
+++ b/src/libstd/arena.rs
@@ -8,7 +8,9 @@ type chunk = {data: [u8], mut fill: uint};
 type arena = {mut chunks: list::list<@chunk>};
 
 fn chunk(size: uint) -> @chunk {
-    @{ data: vec::from_elem(size, 0u8), mut fill: 0u }
+    let mut v = [];
+    vec::reserve(v, size);
+    @{ data: v, mut fill: 0u }
 }
 
 fn arena_with_size(initial_size: uint) -> arena {