bugGnash - The GNU Flash player - Bugs: bug #21069, regression playing feed.swf

 
 

bug #21069: regression playing feed.swf

Submitted by:  Sandro Santilli <strk>
Submitted on:  Thu 13 Sep 2007 02:48:11 PM UTC  
 
Category: NoneSeverity: 5 - Blocker
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Sandro Santilli <strk>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Mon 01 Oct 2007 04:26:19 PM UTC, comment #9:

The incriminated code follows:

BUTTONCONDACTION: CondOverDownToOverUp: 1
tellTarget('/') {
eatbites = '1';
gotoLabel(eatbites);
play();
}

If we abort when current target is unloaded, the code above will never execute the 'play' bit..
The original target is _level0.bites: a sprite_instance containing the button.

The test is also fixed if we do not enable opcode-guard for button events (but I think it still needs to be on).

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 27 Sep 2007 08:12:03 AM UTC, comment #8:

Please add those tests.
This bug is closed again, I reintroduced the opcode guard using current target instead of original one (we need a test focused on this in our testsuite).

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 27 Sep 2007 07:24:55 AM UTC, comment #7:

Then ActionWith also need to be checked/tested...

Zou Lunkai <zoulunkai>
Thu 27 Sep 2007 07:13:06 AM UTC, comment #6:

guarding the current target instead of the original target seems effective ! I tried action_execution_order_test8.swf as an SWF5 and still shows opcode guard is fine, so I guess we found the culprit. But I'd still like to have some SWF5 test for opcode guarding for the future.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 27 Sep 2007 07:04:46 AM UTC, comment #5:

for opcode guard we check the original target, not the current target. setTarget changes the current target, and reset to the original if called with undefined/empty_string as argument.

I'm going to check if SWF version makes a difference in opcode guarding.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 27 Sep 2007 07:00:56 AM UTC, comment #4:

Just found setTarget is bogus in Gnash, not sure if it is related...

Testcase will come later.

Zou Lunkai <zoulunkai>
Thu 27 Sep 2007 06:56:30 AM UTC, comment #3:

The problem was due to this:

27880] 08:55:43: DEBUG: Target of action_buffer (_level0.bites) unloaded by execution of opcode:
PC:25 - EX: GotoLabel ("eatbites")
Discarding 2 bytes of remaining opcodes:
PC:37 - EX: Play
PC:38 - EX: <End>

It seems the GotoLabel triggered unload of the sprite,
but we still need to execute at least the 'Play' opcode.

This is an SWF4 movie: do we have a test for SWF4 opcode guard ?

Sandro Santilli <strk>
Project MemberIn charge of this item.
Wed 26 Sep 2007 08:52:29 PM UTC, comment #2:

Fixed by dropping opcode-level unload guard.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Wed 26 Sep 2007 08:01:01 PM UTC, comment #1:

I confirm the bug was introduced by opcode-level unloaded-state guard.
Basically the code following the opcode that triggered unload of the target is discarded now, and it seems it it not always correct.

See also bug #20996 which was introduced by the same commit.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 13 Sep 2007 02:48:11 PM UTC, original submission:

feed.swf
md5sum: 56104186a2ec8a614e0bfb4aad4e9423
SWF4

Used to play fine with 0.8.1
With head you can't feed the birds: you're prompted to choose something to give them, you select something and nothing happens.

I belive this was introduced by changes in the action execution order.

Sandro Santilli <strk>
Project MemberIn charge of this item.

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by zoulunkai (Posted a comment)
  • -unavailable- added by strk (Submitted the item)
  • -unavailable- added by strk
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 8 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 27 Sep 2007 08:12:03 AM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Thu 27 Sep 2007 06:56:30 AM UTCstrkStatusFixed=>Ready For Test
      Open/ClosedClosed=>Open
    Wed 26 Sep 2007 08:52:29 PM UTCstrkStatusNone=>Fixed
      Open/ClosedOpen=>Closed
    Wed 26 Sep 2007 08:01:01 PM UTCstrkAssigned toNone=>strk
    Thu 13 Sep 2007 02:48:11 PM UTCstrkCarbon-Copy-=>Added zoulunkai

    Back to the top


    Powered by Savane 3.1-cleanup1