@@ -92,7 +92,8 @@ impl serialize::Encoder for Encoder {
9292
9393 #[ inline]
9494 fn emit_u16 ( & mut self , v : u16 ) -> EncodeResult {
95- write_leb128 ! ( self , v, u16 , write_u16_leb128)
95+ self . data . extend_from_slice ( & v. to_le_bytes ( ) ) ;
96+ Ok ( ( ) )
9697 }
9798
9899 #[ inline]
@@ -123,7 +124,8 @@ impl serialize::Encoder for Encoder {
123124
124125 #[ inline]
125126 fn emit_i16 ( & mut self , v : i16 ) -> EncodeResult {
126- write_leb128 ! ( self , v, i16 , write_i16_leb128)
127+ self . data . extend_from_slice ( & v. to_le_bytes ( ) ) ;
128+ Ok ( ( ) )
127129 }
128130
129131 #[ inline]
@@ -446,7 +448,7 @@ impl serialize::Encoder for FileEncoder {
446448
447449 #[ inline]
448450 fn emit_u16 ( & mut self , v : u16 ) -> FileEncodeResult {
449- file_encoder_write_leb128 ! ( self , v , u16 , write_u16_leb128 )
451+ self . write_all ( & v . to_le_bytes ( ) )
450452 }
451453
452454 #[ inline]
@@ -476,13 +478,12 @@ impl serialize::Encoder for FileEncoder {
476478
477479 #[ inline]
478480 fn emit_i16 ( & mut self , v : i16 ) -> FileEncodeResult {
479- file_encoder_write_leb128 ! ( self , v , i16 , write_i16_leb128 )
481+ self . write_all ( & v . to_le_bytes ( ) )
480482 }
481483
482484 #[ inline]
483485 fn emit_i8 ( & mut self , v : i8 ) -> FileEncodeResult {
484- let as_u8: u8 = unsafe { std:: mem:: transmute ( v) } ;
485- self . emit_u8 ( as_u8)
486+ self . emit_u8 ( v as u8 )
486487 }
487488
488489 #[ inline]
@@ -591,7 +592,10 @@ impl<'a> serialize::Decoder for Decoder<'a> {
591592
592593 #[ inline]
593594 fn read_u16 ( & mut self ) -> Result < u16 , Self :: Error > {
594- read_leb128 ! ( self , read_u16_leb128)
595+ let bytes = [ self . data [ self . position ] , self . data [ self . position + 1 ] ] ;
596+ let value = u16:: from_le_bytes ( bytes) ;
597+ self . position += 2 ;
598+ Ok ( value)
595599 }
596600
597601 #[ inline]
@@ -623,7 +627,10 @@ impl<'a> serialize::Decoder for Decoder<'a> {
623627
624628 #[ inline]
625629 fn read_i16 ( & mut self ) -> Result < i16 , Self :: Error > {
626- read_leb128 ! ( self , read_i16_leb128)
630+ let bytes = [ self . data [ self . position ] , self . data [ self . position + 1 ] ] ;
631+ let value = i16:: from_le_bytes ( bytes) ;
632+ self . position += 2 ;
633+ Ok ( value)
627634 }
628635
629636 #[ inline]
0 commit comments