Skip to content

Commit 2a7e3c9

Browse files
committed
---
yaml --- r: 146170 b: refs/heads/try2 c: c4907cf h: refs/heads/master v: v3
1 parent ef31ab4 commit 2a7e3c9

File tree

8 files changed

+394
-380
lines changed

8 files changed

+394
-380
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 620ab3853abf99ecea3a3d055f47cd6d06433c95
8+
refs/heads/try2: c4907cfd14f9afa1fc26e2fdddf128f834fe5ce5
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/libextra/ebml.rs

Lines changed: 32 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,8 @@ pub mod reader {
9696

9797
use std::cast::transmute;
9898
use std::int;
99-
use std::io;
10099
use std::option::{None, Option, Some};
101100

102-
#[cfg(target_arch = "x86")]
103-
#[cfg(target_arch = "x86_64")]
104-
use std::ptr::offset;
105-
106-
#[cfg(target_arch = "x86")]
107-
#[cfg(target_arch = "x86_64")]
108-
use std::unstable::intrinsics::bswap32;
109-
110101
// ebml reading
111102

112103
struct Res {
@@ -144,6 +135,9 @@ pub mod reader {
144135
#[cfg(target_arch = "x86")]
145136
#[cfg(target_arch = "x86_64")]
146137
pub fn vuint_at(data: &[u8], start: uint) -> Res {
138+
use std::ptr::offset;
139+
use std::unstable::intrinsics::bswap32;
140+
147141
if data.len() - start < 4 {
148142
return vuint_at_slow(data, start);
149143
}
@@ -178,8 +172,7 @@ pub mod reader {
178172
}
179173
}
180174

181-
#[cfg(target_arch = "arm")]
182-
#[cfg(target_arch = "mips")]
175+
#[cfg(not(target_arch = "x86"), not(target_arch = "x86_64"))]
183176
pub fn vuint_at(data: &[u8], start: uint) -> Res {
184177
vuint_at_slow(data, start)
185178
}
@@ -265,17 +258,17 @@ pub mod reader {
265258

266259
pub fn doc_as_u16(d: Doc) -> u16 {
267260
assert_eq!(d.end, d.start + 2u);
268-
io::u64_from_be_bytes(*d.data, d.start, 2u) as u16
261+
::std::io::u64_from_be_bytes(*d.data, d.start, 2u) as u16
269262
}
270263

271264
pub fn doc_as_u32(d: Doc) -> u32 {
272265
assert_eq!(d.end, d.start + 4u);
273-
io::u64_from_be_bytes(*d.data, d.start, 4u) as u32
266+
::std::io::u64_from_be_bytes(*d.data, d.start, 4u) as u32
274267
}
275268

276269
pub fn doc_as_u64(d: Doc) -> u64 {
277270
assert_eq!(d.end, d.start + 8u);
278-
io::u64_from_be_bytes(*d.data, d.start, 8u)
271+
::std::io::u64_from_be_bytes(*d.data, d.start, 8u)
279272
}
280273

281274
pub fn doc_as_i8(d: Doc) -> i8 { doc_as_u8(d) as i8 }
@@ -614,11 +607,14 @@ pub mod writer {
614607

615608
use std::cast;
616609
use std::clone::Clone;
617-
use std::io;
610+
use std::rt::io;
611+
use std::rt::io::{Writer, Seek};
612+
use std::rt::io::mem::MemWriter;
618613

619614
// ebml writing
620615
pub struct Encoder {
621-
writer: @io::Writer,
616+
// FIXME(#5665): this should take a trait object
617+
writer: @mut MemWriter,
622618
priv size_positions: ~[uint],
623619
}
624620

@@ -631,7 +627,7 @@ pub mod writer {
631627
}
632628
}
633629

634-
fn write_sized_vuint(w: @io::Writer, n: uint, size: uint) {
630+
fn write_sized_vuint(w: @mut MemWriter, n: uint, size: uint) {
635631
match size {
636632
1u => w.write(&[0x80u8 | (n as u8)]),
637633
2u => w.write(&[0x40u8 | ((n >> 8_u) as u8), n as u8]),
@@ -643,15 +639,15 @@ pub mod writer {
643639
};
644640
}
645641

646-
fn write_vuint(w: @io::Writer, n: uint) {
642+
fn write_vuint(w: @mut MemWriter, n: uint) {
647643
if n < 0x7f_u { write_sized_vuint(w, n, 1u); return; }
648644
if n < 0x4000_u { write_sized_vuint(w, n, 2u); return; }
649645
if n < 0x200000_u { write_sized_vuint(w, n, 3u); return; }
650646
if n < 0x10000000_u { write_sized_vuint(w, n, 4u); return; }
651647
fail!("vint to write too big: {}", n);
652648
}
653649

654-
pub fn Encoder(w: @io::Writer) -> Encoder {
650+
pub fn Encoder(w: @mut MemWriter) -> Encoder {
655651
let size_positions: ~[uint] = ~[];
656652
Encoder {
657653
writer: w,
@@ -668,18 +664,18 @@ pub mod writer {
668664
write_vuint(self.writer, tag_id);
669665

670666
// Write a placeholder four-byte size.
671-
self.size_positions.push(self.writer.tell());
667+
self.size_positions.push(self.writer.tell() as uint);
672668
let zeroes: &[u8] = &[0u8, 0u8, 0u8, 0u8];
673669
self.writer.write(zeroes);
674670
}
675671

676672
pub fn end_tag(&mut self) {
677673
let last_size_pos = self.size_positions.pop();
678674
let cur_pos = self.writer.tell();
679-
self.writer.seek(last_size_pos as int, io::SeekSet);
680-
let size = (cur_pos - last_size_pos - 4u);
681-
write_sized_vuint(self.writer, size, 4u);
682-
self.writer.seek(cur_pos as int, io::SeekSet);
675+
self.writer.seek(last_size_pos as i64, io::SeekSet);
676+
let size = (cur_pos as uint - last_size_pos - 4);
677+
write_sized_vuint(self.writer, size as uint, 4u);
678+
self.writer.seek(cur_pos as i64, io::SeekSet);
683679

684680
debug!("End tag (size = {})", size);
685681
}
@@ -697,19 +693,19 @@ pub mod writer {
697693
}
698694

699695
pub fn wr_tagged_u64(&mut self, tag_id: uint, v: u64) {
700-
do io::u64_to_be_bytes(v, 8u) |v| {
696+
do ::std::io::u64_to_be_bytes(v, 8u) |v| {
701697
self.wr_tagged_bytes(tag_id, v);
702698
}
703699
}
704700

705701
pub fn wr_tagged_u32(&mut self, tag_id: uint, v: u32) {
706-
do io::u64_to_be_bytes(v as u64, 4u) |v| {
702+
do ::std::io::u64_to_be_bytes(v as u64, 4u) |v| {
707703
self.wr_tagged_bytes(tag_id, v);
708704
}
709705
}
710706

711707
pub fn wr_tagged_u16(&mut self, tag_id: uint, v: u16) {
712-
do io::u64_to_be_bytes(v as u64, 2u) |v| {
708+
do ::std::io::u64_to_be_bytes(v as u64, 2u) |v| {
713709
self.wr_tagged_bytes(tag_id, v);
714710
}
715711
}
@@ -719,19 +715,19 @@ pub mod writer {
719715
}
720716

721717
pub fn wr_tagged_i64(&mut self, tag_id: uint, v: i64) {
722-
do io::u64_to_be_bytes(v as u64, 8u) |v| {
718+
do ::std::io::u64_to_be_bytes(v as u64, 8u) |v| {
723719
self.wr_tagged_bytes(tag_id, v);
724720
}
725721
}
726722

727723
pub fn wr_tagged_i32(&mut self, tag_id: uint, v: i32) {
728-
do io::u64_to_be_bytes(v as u64, 4u) |v| {
724+
do ::std::io::u64_to_be_bytes(v as u64, 4u) |v| {
729725
self.wr_tagged_bytes(tag_id, v);
730726
}
731727
}
732728

733729
pub fn wr_tagged_i16(&mut self, tag_id: uint, v: i16) {
734-
do io::u64_to_be_bytes(v as u64, 2u) |v| {
730+
do ::std::io::u64_to_be_bytes(v as u64, 2u) |v| {
735731
self.wr_tagged_bytes(tag_id, v);
736732
}
737733
}
@@ -963,18 +959,18 @@ mod tests {
963959
use serialize::Encodable;
964960
use serialize;
965961

966-
use std::io;
962+
use std::rt::io::Decorator;
963+
use std::rt::io::mem::MemWriter;
967964
use std::option::{None, Option, Some};
968965

969966
#[test]
970967
fn test_option_int() {
971968
fn test_v(v: Option<int>) {
972969
debug!("v == {:?}", v);
973-
let bytes = do io::with_bytes_writer |wr| {
974-
let mut ebml_w = writer::Encoder(wr);
975-
v.encode(&mut ebml_w)
976-
};
977-
let ebml_doc = reader::Doc(@bytes);
970+
let wr = @mut MemWriter::new();
971+
let mut ebml_w = writer::Encoder(wr);
972+
v.encode(&mut ebml_w);
973+
let ebml_doc = reader::Doc(@wr.inner_ref().to_owned());
978974
let mut deser = reader::Decoder(ebml_doc);
979975
let v1 = serialize::Decodable::decode(&mut deser);
980976
debug!("v1 == {:?}", v1);

branches/try2/src/libextra/uuid.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,8 @@ mod test {
522522
use std::str;
523523
use std::rand;
524524
use std::num::Zero;
525+
use std::rt::io::Decorator;
526+
use std::rt::io::mem::MemWriter;
525527

526528
#[test]
527529
fn test_new_nil() {
@@ -795,10 +797,10 @@ mod test {
795797
use serialize::{Encodable, Decodable};
796798

797799
let u = Uuid::new_v4();
798-
let bytes = do std::io::with_bytes_writer |wr| {
799-
u.encode(&mut ebml::writer::Encoder(wr));
800-
};
801-
let u2 = Decodable::decode(&mut ebml::reader::Decoder(ebml::reader::Doc(@bytes)));
800+
let wr = @mut MemWriter::new();
801+
u.encode(&mut ebml::writer::Encoder(wr));
802+
let doc = ebml::reader::Doc(@wr.inner_ref().to_owned());
803+
let u2 = Decodable::decode(&mut ebml::reader::Decoder(doc));
802804
assert_eq!(u, u2);
803805
}
804806
}

0 commit comments

Comments
 (0)