@@ -73,39 +73,40 @@ fn read_unicode_string<R: io::Read>(reader: &mut R, size: usize) -> Result<Strin
7373}
7474
7575/// Read an arbitrary number of contiguous marshal objects
76- fn read_objects < R : io:: Read > ( reader : & mut R , references : & mut Vec < Object > , size : usize ) -> Result < Vec < Object > , UnmarshalError > {
76+ fn read_tmp_objects < R : io:: Read > ( reader : & mut R , references : & mut Vec < Object > , size : usize ) -> Result < Vec < Object > , UnmarshalError > {
7777 let mut vector = Vec :: < Object > :: new ( ) ;
7878 vector. reserve ( size) ;
7979 for _ in 0 ..size {
80- let object = try!( read_object ( reader, references) ) ;
80+ let object = try!( read_tmp_object ( reader, references) ) ;
8181 vector. push ( object) ;
8282 } ;
8383 Ok ( vector)
8484}
8585
86- /// Read objects and build an other object containing them.
86+ /// Read temporary marshal objects and build an other object containing them.
8787/// If the flag is true, add this object to the vector of objects before reading its content
8888/// (required, as the order of objects matter for references).
8989macro_rules! build_container {
9090 ( $reader: expr, $references: ident, $container: expr, $size: expr, $flag: expr) => { {
9191 if $flag {
9292 let index = $references. len( ) as u32 ; // TODO: overflow check
9393 $references. push( Object :: Hole ) ;
94- let objects = try!( read_objects ( $reader, $references, $size) ) ;
94+ let objects = try!( read_tmp_objects ( $reader, $references, $size) ) ;
9595 $references[ index as usize ] = $container( objects) ; // TODO: overflow check
9696 ( false , Object :: Ref ( index) )
9797 }
9898 else {
99- let objects = try!( read_objects ( $reader, $references, $size) ) ;
99+ let objects = try!( read_tmp_objects ( $reader, $references, $size) ) ;
100100 ( false , $container( objects) )
101101 }
102102 } }
103103}
104104
105- /// Read an object, whose type is known from the first byte. If it is a container, read its content too.
105+ /// Read an tmporary marshal object, whose type is known from the first byte.
106+ /// If it is a container, read its content too.
106107/// If the first bit is 1 and the marshal protocol allows the type to be referenced,
107108/// add it to the list of references too.
108- pub fn read_object < R : io:: Read > ( reader : & mut R , references : & mut Vec < Object > ) -> Result < Object , UnmarshalError > {
109+ pub fn read_tmp_object < R : io:: Read > ( reader : & mut R , references : & mut Vec < Object > ) -> Result < Object , UnmarshalError > {
109110 let byte = read_byte ! ( reader) ;
110111 let flag = byte & 0b10000000 != 0 ;
111112 let opcode = byte & 0b01111111 ;
@@ -164,16 +165,16 @@ pub fn read_object<R: io::Read>(reader: &mut R, references: &mut Vec<Object>) ->
164165 nlocals : try!( read_long ( reader) ) ,
165166 stacksize : try!( read_long ( reader) ) ,
166167 flags : try!( read_long ( reader) ) ,
167- code : try!( read_object ( reader, references) ) ,
168- consts : try!( read_object ( reader, references) ) ,
169- names : try!( read_object ( reader, references) ) ,
170- varnames : try!( read_object ( reader, references) ) ,
171- freevars : try!( read_object ( reader, references) ) ,
172- cellvars : try!( read_object ( reader, references) ) ,
173- filename : try!( read_object ( reader, references) ) ,
174- name : try!( read_object ( reader, references) ) ,
168+ code : try!( read_tmp_object ( reader, references) ) ,
169+ consts : try!( read_tmp_object ( reader, references) ) ,
170+ names : try!( read_tmp_object ( reader, references) ) ,
171+ varnames : try!( read_tmp_object ( reader, references) ) ,
172+ freevars : try!( read_tmp_object ( reader, references) ) ,
173+ cellvars : try!( read_tmp_object ( reader, references) ) ,
174+ filename : try!( read_tmp_object ( reader, references) ) ,
175+ name : try!( read_tmp_object ( reader, references) ) ,
175176 firstlineno : try!( read_long ( reader) ) ,
176- lnotab : try!( read_object ( reader, references) ) , // TODO: decode this
177+ lnotab : try!( read_tmp_object ( reader, references) ) , // TODO: decode this
177178 } ;
178179
179180 let object = Object :: Code ( Box :: new ( code) ) ;
@@ -195,13 +196,13 @@ macro_rules! assert_unmarshal {
195196 ( $expected_obj: expr, $bytecode: expr) => { {
196197 let mut reader: & [ u8 ] = $bytecode;
197198 let mut refs = Vec :: new( ) ;
198- let obj = read_object ( & mut reader, & mut refs) . unwrap( ) ;
199+ let obj = read_tmp_object ( & mut reader, & mut refs) . unwrap( ) ;
199200 assert_eq!( $expected_obj, obj) ;
200201 } } ;
201202 ( $expected_obj: expr, $expected_refs: expr, $bytecode: expr) => { {
202203 let mut reader: & [ u8 ] = $bytecode;
203204 let mut refs = Vec :: new( ) ;
204- let obj = read_object ( & mut reader, & mut refs) . unwrap( ) ;
205+ let obj = read_tmp_object ( & mut reader, & mut refs) . unwrap( ) ;
205206 assert_eq!( $expected_obj, obj) ;
206207 assert_eq!( $expected_refs, refs) ;
207208 } } ;
0 commit comments