about summary refs log tree commit diff
path: root/src/rustc/metadata
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2012-08-02 17:17:07 -0700
committerGraydon Hoare <graydon@mozilla.com>2012-08-02 18:06:33 -0700
commit009352101d129fe782d2abc18a61d064ebc245a1 (patch)
tree2ea2a575c8b2f3d58fd26ff2abefefa94ae09ee9 /src/rustc/metadata
parentff00edb7e1fd669b7a333e0b3842f3751ee6d573 (diff)
downloadrust-009352101d129fe782d2abc18a61d064ebc245a1.tar.gz
rust-009352101d129fe782d2abc18a61d064ebc245a1.zip
Shift writer_util to a derived impl attached to the writer trait
Diffstat (limited to 'src/rustc/metadata')
-rw-r--r--src/rustc/metadata/encoder.rs11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/rustc/metadata/encoder.rs b/src/rustc/metadata/encoder.rs
index 3ee7b4f919f..24e4c5c6586 100644
--- a/src/rustc/metadata/encoder.rs
+++ b/src/rustc/metadata/encoder.rs
@@ -955,7 +955,8 @@ fn encode_index<T>(ebml_w: ebml::writer, buckets: ~[@~[entry<T>]],
         ebml_w.start_tag(tag_index_buckets_bucket);
         for vec::each(*bucket) |elt| {
             ebml_w.start_tag(tag_index_buckets_bucket_elt);
-            writer.write_be_uint(elt.pos, 4u);
+            assert elt.pos < (u32::max_value as uint);
+            writer.write_be_u32(elt.pos as u32);
             write_fn(writer, elt.val);
             ebml_w.end_tag();
         }
@@ -963,7 +964,10 @@ fn encode_index<T>(ebml_w: ebml::writer, buckets: ~[@~[entry<T>]],
     }
     ebml_w.end_tag();
     ebml_w.start_tag(tag_index_table);
-    for bucket_locs.each |pos| { writer.write_be_uint(pos, 4u); }
+    for bucket_locs.each |pos| {
+        assert pos < (u32::max_value as uint);
+        writer.write_be_u32(pos as u32);
+    }
     ebml_w.end_tag();
     ebml_w.end_tag();
 }
@@ -971,7 +975,8 @@ fn encode_index<T>(ebml_w: ebml::writer, buckets: ~[@~[entry<T>]],
 fn write_str(writer: io::writer, &&s: ~str) { writer.write_str(s); }
 
 fn write_int(writer: io::writer, &&n: int) {
-    writer.write_be_uint(n as uint, 4u);
+    assert n < (u32::max_value as int);
+    writer.write_be_u32(n as u32);
 }
 
 fn encode_meta_item(ebml_w: ebml::writer, mi: meta_item) {