summary refs log tree commit diff
path: root/src/libstd/ebml.rs
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2012-03-14 14:03:56 -0400
committerNiko Matsakis <niko@alum.mit.edu>2012-03-14 20:46:36 -0400
commit6b35875dca67e5dd1e8f986c8528ffbf973fdcbb (patch)
treed36cb21cbe8dde663f0f381ad9ce70c9c50fc295 /src/libstd/ebml.rs
parent273c5e5f1129949db780619901fe54b9a3d1fecf (diff)
downloadrust-6b35875dca67e5dd1e8f986c8528ffbf973fdcbb.tar.gz
rust-6b35875dca67e5dd1e8f986c8528ffbf973fdcbb.zip
annotate libstd and start enforcing mutability
Diffstat (limited to 'src/libstd/ebml.rs')
-rw-r--r--src/libstd/ebml.rs23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs
index 2e08b51be16..364eb16408c 100644
--- a/src/libstd/ebml.rs
+++ b/src/libstd/ebml.rs
@@ -77,7 +77,7 @@ fn doc_at(data: @[u8], start: uint) -> tagged_doc {
 }
 
 fn maybe_get_doc(d: doc, tg: uint) -> option<doc> {
-    let pos = d.start;
+    let mut pos = d.start;
     while pos < d.end {
         let elt_tag = vuint_at(*d.data, pos);
         let elt_size = vuint_at(*d.data, elt_tag.next);
@@ -100,7 +100,7 @@ fn get_doc(d: doc, tg: uint) -> doc {
 }
 
 fn docs(d: doc, it: fn(uint, doc)) {
-    let pos = d.start;
+    let mut pos = d.start;
     while pos < d.end {
         let elt_tag = vuint_at(*d.data, pos);
         let elt_size = vuint_at(*d.data, elt_tag.next);
@@ -110,7 +110,7 @@ fn docs(d: doc, it: fn(uint, doc)) {
 }
 
 fn tagged_docs(d: doc, tg: uint, it: fn(doc)) {
-    let pos = d.start;
+    let mut pos = d.start;
     while pos < d.end {
         let elt_tag = vuint_at(*d.data, pos);
         let elt_size = vuint_at(*d.data, elt_tag.next);
@@ -154,20 +154,19 @@ fn doc_as_i64(d: doc) -> i64 { doc_as_u64(d) as i64 }
 type writer = {writer: io::writer, mutable size_positions: [uint]};
 
 fn write_sized_vuint(w: io::writer, n: uint, size: uint) {
-    let buf: [u8];
-    alt size {
-      1u { buf = [0x80u8 | (n as u8)]; }
-      2u { buf = [0x40u8 | ((n >> 8_u) as u8), n as u8]; }
+    let buf: [u8] = alt size {
+      1u { [0x80u8 | (n as u8)] }
+      2u { [0x40u8 | ((n >> 8_u) as u8), n as u8] }
       3u {
-        buf = [0x20u8 | ((n >> 16_u) as u8), (n >> 8_u) as u8,
-               n as u8];
+        [0x20u8 | ((n >> 16_u) as u8), (n >> 8_u) as u8,
+               n as u8]
       }
       4u {
-        buf = [0x10u8 | ((n >> 24_u) as u8), (n >> 16_u) as u8,
-               (n >> 8_u) as u8, n as u8];
+        [0x10u8 | ((n >> 24_u) as u8), (n >> 16_u) as u8,
+               (n >> 8_u) as u8, n as u8]
       }
       _ { fail #fmt("vint to write too big: %?", n); }
-    }
+    };
     w.write(buf);
 }