swf: Remove `tag_length` parameter of `read_define_button_cxform`
It was not needed since `Reader` accounts for it internally.
This commit is contained in:
parent
3da3567365
commit
9ec3137891
|
@ -397,7 +397,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
TagCode::DefineButtonCxform => self
|
||||
.0
|
||||
.write(context.gc_context)
|
||||
.define_button_cxform(context, reader, tag_len),
|
||||
.define_button_cxform(context, reader),
|
||||
TagCode::DefineButtonSound => self
|
||||
.0
|
||||
.write(context.gc_context)
|
||||
|
@ -2998,9 +2998,8 @@ impl<'gc, 'a> MovieClipData<'gc> {
|
|||
&mut self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
reader: &mut SwfStream<'a>,
|
||||
tag_len: usize,
|
||||
) -> DecodeResult {
|
||||
let button_colors = reader.read_define_button_cxform(tag_len)?;
|
||||
let button_colors = reader.read_define_button_cxform()?;
|
||||
match context
|
||||
.library
|
||||
.library_for_movie_mut(self.movie())
|
||||
|
|
|
@ -390,7 +390,7 @@ impl<'a> Reader<'a> {
|
|||
Tag::DefineButton2(Box::new(tag_reader.read_define_button_2()?))
|
||||
}
|
||||
TagCode::DefineButtonCxform => {
|
||||
Tag::DefineButtonColorTransform(tag_reader.read_define_button_cxform(length)?)
|
||||
Tag::DefineButtonColorTransform(tag_reader.read_define_button_cxform()?)
|
||||
}
|
||||
TagCode::DefineButtonSound => {
|
||||
Tag::DefineButtonSound(Box::new(tag_reader.read_define_button_sound()?))
|
||||
|
@ -790,18 +790,15 @@ impl<'a> Reader<'a> {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn read_define_button_cxform(&mut self, tag_length: usize) -> Result<ButtonColorTransform> {
|
||||
pub fn read_define_button_cxform(&mut self) -> Result<ButtonColorTransform> {
|
||||
// SWF19 is incorrect here. You can have >1 color transforms in this tag. They apply
|
||||
// to the characters in a button in sequence.
|
||||
|
||||
// We don't know how many color transforms this tag will contain, so read it into a buffer.
|
||||
let mut reader = Reader::new(self.read_slice(tag_length)?, self.version);
|
||||
|
||||
let id = reader.read_character_id()?;
|
||||
let id = self.read_character_id()?;
|
||||
let mut color_transforms = Vec::new();
|
||||
|
||||
// Read all color transforms.
|
||||
while let Ok(color_transform) = reader.read_color_transform_no_alpha() {
|
||||
while let Ok(color_transform) = self.read_color_transform_no_alpha() {
|
||||
color_transforms.push(color_transform);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue