@@ -3293,8 +3293,7 @@ impl<'gc, 'a> MovieClipShared<'gc> {
32933293 ) -> Result < ( ) , Error > {
32943294 let mc = context. gc ( ) ;
32953295 let library = self . library_mut ( context) ;
3296- let id = reader. read_u16 ( ) ?;
3297- let jpeg_data = reader. read_slice_to_end ( ) ;
3296+ let ( id, jpeg_data) = reader. read_define_bits ( ) ?;
32983297 let jpeg_tables = library. jpeg_tables ( ) ;
32993298 let jpeg_data =
33003299 ruffle_render:: utils:: glue_tables_to_jpeg ( jpeg_data, jpeg_tables) . into_owned ( ) ;
@@ -3321,12 +3320,11 @@ impl<'gc, 'a> MovieClipShared<'gc> {
33213320 context : & mut UpdateContext < ' gc > ,
33223321 reader : & mut SwfStream < ' a > ,
33233322 ) -> Result < ( ) , Error > {
3324- let id = reader. read_u16 ( ) ?;
3325- let jpeg_data = reader. read_slice_to_end ( ) ;
3323+ let ( id, jpeg_data) = reader. read_define_bits_jpeg_2 ( ) ?;
33263324 let ( width, height) = ruffle_render:: utils:: decode_define_bits_jpeg_dimensions ( jpeg_data) ?;
33273325 let bitmap = Character :: Bitmap {
33283326 compressed : CompressedBitmap :: Jpeg {
3329- data : jpeg_data. to_vec ( ) ,
3327+ data : jpeg_data. to_owned ( ) ,
33303328 alpha : None ,
33313329 width,
33323330 height,
@@ -3345,25 +3343,20 @@ impl<'gc, 'a> MovieClipShared<'gc> {
33453343 reader : & mut SwfStream < ' a > ,
33463344 version : u8 ,
33473345 ) -> Result < ( ) , Error > {
3348- let id = reader. read_u16 ( ) ?;
3349- let jpeg_len = reader. read_u32 ( ) ? as usize ;
3350- if version == 4 {
3351- let _deblocking = reader. read_u16 ( ) ?;
3352- }
3353- let jpeg_data = reader. read_slice ( jpeg_len) ?;
3354- let alpha_data = reader. read_slice_to_end ( ) ;
3355- let ( width, height) = ruffle_render:: utils:: decode_define_bits_jpeg_dimensions ( jpeg_data) ?;
3346+ let jpeg = reader. read_define_bits_jpeg_3 ( version) ?;
3347+ let ( width, height) = ruffle_render:: utils:: decode_define_bits_jpeg_dimensions ( jpeg. data ) ?;
33563348 let bitmap = Character :: Bitmap {
33573349 compressed : CompressedBitmap :: Jpeg {
3358- data : jpeg_data . to_owned ( ) ,
3359- alpha : Some ( alpha_data. to_owned ( ) ) ,
3350+ data : jpeg . data . to_owned ( ) ,
3351+ alpha : Some ( jpeg . alpha_data . to_owned ( ) ) ,
33603352 width,
33613353 height,
33623354 } ,
33633355 handle : Default :: default ( ) ,
33643356 avm2_bitmapdata_class : GcCell :: new ( context. gc ( ) , BitmapClass :: NoSubclass ) ,
33653357 } ;
3366- self . library_mut ( context) . register_character ( id, bitmap) ;
3358+ self . library_mut ( context)
3359+ . register_character ( jpeg. id , bitmap) ;
33673360 Ok ( ( ) )
33683361 }
33693362
0 commit comments