bugGnash - The GNU Flash player - Bugs: bug #21804, /server/character.cpp:838: virtual...

 
 

bug #21804: /server/character.cpp:838: virtual void gnash::character::destroy(): Assertion `isUnloaded()' failed.

Submitted by:  Sandro Santilli <strk>
Submitted on:  Fri 14 Dec 2007 10:45:48 PM UTC  
 
Category: NoneSeverity: 5 - Blocker
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Zou Lunkai <zoulunkai>
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 07 Jan 2008 09:56:10 AM UTC, comment #10:

I fixed the leak by always setting _unloaded to true on ::destroy() already. The same setting fixed this bug btw.

Sandro Santilli <strk>
Project Member
Mon 07 Jan 2008 09:47:52 AM UTC, comment #9:

Tests described in this item are already fixed.

But it is said there are memory leaks in bug #21377. I cann't access swfs in that item, so cann't verify it.

Zou Lunkai <zoulunkai>In charge of this item.
Sat 05 Jan 2008 01:49:30 AM UTC, comment #8:

I belive we fixed the assertion failure and the memory leak that assertion was guarding against, right ?

Sandro Santilli <strk>
Project Member
Tue 18 Dec 2007 08:43:32 AM UTC, comment #7:

> What about adding an optional boolean parameter to unload() ?


That's the next step. The difficulty with new_child_in_unload.c is we haven't find any envidence that the new child is unloaded. We can swap it, we can draw on it. So, we should still face the question: why do you want to unload it? Or how do you know it's already unloaded before destroyed?

BTW, we cann't swap normal unloaded chracters(already tested). You might want to make a copy of that test and do more checks whatever you like.

Zou Lunkai <zoulunkai>In charge of this item.
Tue 18 Dec 2007 07:16:25 AM UTC, comment #6:

What about adding an optional boolean parameter to unload() ?

unload(bool queueUnloadEvents=true)

Sandro Santilli <strk>
Project Member
Tue 18 Dec 2007 01:02:18 AM UTC, comment #5:

> Zou, the question is should we invoke/queue onUnload event
> handlers in these childs when destroyed due to destruction of
> parent ?


No, we don't want to invoke onUnload event handler in the focused tests. That's why I remove the assertion, not to just fix this bug item. I think the assertion there is conceptually not correct(based on tests and the actions ordering model).

Zou Lunkai <zoulunkai>In charge of this item.
Mon 17 Dec 2007 11:13:55 AM UTC, comment #4:

Zou, the question is should we invoke/queue onUnload event handlers in these childs when destroyed due to destruction of parent ?
That's one of the reasons for the assertion to be there.

Sandro Santilli <strk>
Project Member
Mon 17 Dec 2007 07:48:28 AM UTC, comment #3:

BTW, both the tests I committed and bwy's testfile are not timeline control related. There's no gotoFrame or loopback in my committed tests.

Zou Lunkai <zoulunkai>In charge of this item.
Mon 17 Dec 2007 05:38:07 AM UTC, comment #2:

I think we should just remove the assertion.

It's possible to destroy an character before unload it. And it's possible that an unloaded parent has an normal child.

eg.

in a unload event handler, if we do this:

this.createEmptyMovieClip('newChild', depth);

then, 'this' sprite would create an normal(not unloaded) character as it's child. And the child itself won't have a chance to queue its own unload event handler again nor be unloaded later. But it should be destroyed when its parent got destroyed.

I'll commit a test for this.

Zou Lunkai <zoulunkai>In charge of this item.
Sat 15 Dec 2007 10:19:19 AM UTC, comment #1:

I've attached another SWF that fails this assertion.

(file #14631)

Benjamin Wolsey <bwy>
Project Member
Fri 14 Dec 2007 10:45:48 PM UTC, original submission:

This is playing kimpossible.swf (swf6)
md5: c0e6f76900ec377881bc0b00ec7a01b1

Advance to second screen, then fall down the rope
the game is restarted with kim failing to hit the ground
(keeps falling down under the ground)
till the assertion fails.

Sandro Santilli <strk>
Project Member

 

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

Attach File(s):
   
   
Comment:
   

Attached Files
file #14631:  whaleflash.swf added by bwy (382KiB - application/x-shockwave-flash)

 

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 bwy (Updated the item)
  • -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 7 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Mon 07 Jan 2008 09:56:10 AM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Sat 05 Jan 2008 01:49:30 AM UTCstrkStatusIn Progress=>Ready For Test
    Mon 17 Dec 2007 05:38:07 AM UTCzoulunkaiStatusNone=>In Progress
      Assigned toNone=>zoulunkai
    Sat 15 Dec 2007 10:19:19 AM UTCbwyAttached File-=>Added whaleflash.swf, #14631
    Fri 14 Dec 2007 10:45:48 PM UTCstrkCarbon-Copy-=>Added zoulunkai

    Back to the top


    Powered by Savane 3.1-cleanup1