diff options
| author | Graydon Hoare <graydon@mozilla.com> | 2012-08-02 17:17:07 -0700 |
|---|---|---|
| committer | Graydon Hoare <graydon@mozilla.com> | 2012-08-02 18:06:33 -0700 |
| commit | 009352101d129fe782d2abc18a61d064ebc245a1 (patch) | |
| tree | 2ea2a575c8b2f3d58fd26ff2abefefa94ae09ee9 /src/rustc/metadata | |
| parent | ff00edb7e1fd669b7a333e0b3842f3751ee6d573 (diff) | |
| download | rust-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.rs | 11 |
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) { |
