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:
relrelb 2022-09-02 11:10:04 +03:00 committed by Mike Welsh
parent 3da3567365
commit 9ec3137891
2 changed files with 6 additions and 10 deletions

View File

@ -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())

View File

@ -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);
}