bugGnash - The GNU Flash player - Bugs: bug #18482, delete tag broken

 
 

bug #18482: delete tag broken

Submitted by:  Zou Lunkai <zoulunkai>
Submitted on:  Fri 08 Dec 2006 03:24:00 AM UTC  
 
Category: ActionScriptSeverity: 3 - Normal
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)

Sun 10 Dec 2006 06:44:50 PM UTC, comment #8:

Ok, fixed for this case too... case sensitiveness should also be ok. Tests are welcome. Again, any Dejagnu.swf-based self-contained testcases is HIGHLY appreciated.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Sun 10 Dec 2006 04:13:13 AM UTC, comment #7:

hello, strk

This is my testing result:

>>What would happen if obj.a is protected from deletion ?

the "Delete operation" will return a false, the obj.a will not
be deleted.

>>Would the first delete actually delete a in main timeline ?

No, the "Delete operation" will just return a false and not go to search the "scope chain". The "a" in main timeline will not
be deleted.

Zou Lunkai <zoulunkai>
Fri 08 Dec 2006 11:27:37 PM UTC, comment #6:

An initial fix is ready for this specific case, but a deeper testcase, self-contained as explained in the manual is highly appreciated to fix the behaviour.

Note that currently if an object in the stack does have a property with the given name but it is protected, the seek continues down the stack. Also, current implementation is case-sensitive always, while I think it should be case-insensitive when target SWF is 6 or lower.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 11:01:03 PM UTC, comment #5:

Other question (useful if you're actually working on a testcase).
What would happen if obl.a is protected from deletion ?
Would the first delete actually delete a in main timeline ?

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 03:50:33 PM UTC, comment #4:

I respond to myself: yes, there's an explicit "dontDelete" flag.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 03:10:23 PM UTC, comment #3:

A question: would a delete operation fail if the member is protected (with AsSetPropFlags) ?

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 03:07:46 PM UTC, comment #2:

This is an interesting case. I confirm the delete action tag handler is broken in that it doesn't really delete the variable
but just sets it to 'undefined'.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 02:48:35 PM UTC, comment #1:

HEAD doesn't issue a stack underrun message anymore (this was fixed). Still the problem persists. As usual, turning your testcase into a self-contained one will help.

Basically you would be callign trace('PASSED: message')
or trace('FAILED: message') embedding checks in the code.

Sandro Santilli <strk>
Project MemberIn charge of this item.
Fri 08 Dec 2006 03:24:00 AM UTC, original submission:

Tested with gnash_release_0_7_2.

I think there is something wrong with the implementation of finding a variable in the "scope chain". This is a very simple file with only 12 lines ActionScipt codes which courses a "Stack underrun" error.

My test file is like this:
// start of test file
obj = new Object();
a = 5;
obj.a = 6;
_global.a = 4;

with(obj)
{
trace(a); // should output 6(a in obj)
delete a;
trace(a); // should output 5(a in main Timeline)
delete a;
trace(a); // should output 4(a in _global)
}
// end of test file
The gnash_release_0_7_2 produce the following result:
6
6
6
The standard player produces:
6
5
4

I can not do the test with the HEAD Gnash, for I cann't update my
sources for weeks. Maybe it's already fixed. Can anyone tell me?

Attached file:
scope_chain_test.swf: test file which causes the "Stack underrun" message with "-va " option.

scope_chain_test.fla: the source of the test file.

Zou Lunkai <zoulunkai>

 

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

Attach File(s):
   
   
Comment:
   

Attached Files
file #11475:  scope_chain_test.swf added by zoulunkai (128B - application/x-shockwave-flash)
file #11476:  scope_chain_test.fla added by zoulunkai (48KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    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
    Mon 18 Dec 2006 06:49:51 PM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Fri 08 Dec 2006 11:27:37 PM UTCstrkStatusIn Progress=>Ready For Test
    Fri 08 Dec 2006 03:07:46 PM UTCstrkSummary"Stack underrun" error=>delete tag broken
    Fri 08 Dec 2006 02:48:35 PM UTCstrkStatusNone=>In Progress
      Assigned toNone=>strk
    Fri 08 Dec 2006 03:24:01 AM UTCzoulunkaiAttached File-=>Added scope_chain_test.swf, #11475
      Attached File-=>Added scope_chain_test.fla, #11476

    Back to the top


    Powered by Savane 3.1-cleanup1