bugGnash - The GNU Flash player - Bugs: bug #19085, Problems in shape morph display...

 
 

bug #19085: Problems in shape morph display (with possibly malformed SWF)

Submitted by:  Hubert Figuiere <hub>
Submitted on:  Mon 19 Feb 2007 02:44:33 AM UTC  
 
Category: coreSeverity: 3 - Normal
Release: NoneStatus: Confirmed
Privacy: PublicAssigned to: None
Open/Closed: Open

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)

Thu 30 Sep 2010 10:43:13 AM UTC, comment #14:

http://uploads.ungrounded.net/1000/1448_doughguy.swf

or http://www.newgrounds.com/portal/view/1448

Problem is still there, and the sound is awful (ffmpeg).

Benjamin Wolsey <bwy>
Project Member
Thu 30 Sep 2010 10:39:51 AM UTC, comment #13:

The test case, http://content.boredmuch.com/flash/568db6323c3109f.swf , is currently missing. Was planning to see if I could reproduce the problem, but this proved to be impossible.

Anonymous
Mon 10 Sep 2007 06:47:59 AM UTC, comment #12:

cmusick wrote:

> Yes, I saw the tongue spitting, but this doesn't appear
> to be a morphing issue, as far as I can determine.


I tried with FORCE_REDRAW in gui.cpp and it doesn't fix the problem, rather it makes it worst (longer toungue)

Sandro Santilli <strk>
Project Member
Mon 10 Sep 2007 06:20:26 AM UTC, comment #11:

Yes, much better, but there's still a problem in the first scene, in where the dough seems to spit out its toungue (shouldn't happen).

Sandro Santilli <strk>
Project Member
Mon 10 Sep 2007 06:16:05 AM UTC, comment #10:

Yes, confirm it's fixed.

Benjamin Wolsey <bwy>
Project Member
Mon 10 Sep 2007 04:34:38 AM UTC, comment #9:

The SWF here wasn't malformed, but it included some hard edged bitmaps in a morph shape, which wasn't valid until v7. Should be fixed now.

Chad Musick <cmusick>
Thu 29 Mar 2007 09:27:37 AM UTC, comment #8:

More info, the http://content.boredmuch.com/flash/568db6323c3109f.swf case plays
fine with swfdec, so we can look at its code to handle it better.

Sandro Santilli <strk>
Project Member
Mon 26 Feb 2007 02:40:08 PM UTC, comment #7:

For the record: a couple of testcases for this problem are
already in CVS:
samples/test_shape_tweening.swf
samples/test_shape_tweening-2.swf

Both fail currently (no aborts, just wrong display)

Sandro Santilli <strk>
Project Member
Mon 26 Feb 2007 12:34:19 PM UTC, comment #6:

mmm... just seen the first testcase (I was using the second one).
In this case my workaround doesn't work very well.
It doesn't abort, but display seems wrong.

Talking about: http://content.boredmuch.com/flash/568db6323c3109f.swf

Reduced testcases are still good.

I changed the bug summary to a more correct wording,
but I won't work on this now. Feel free to jump in anyone.

Sandro Santilli <strk>
Project Member
Mon 26 Feb 2007 10:43:28 AM UTC, comment #5:

I've provided some handling of the malformation.
Your specific test seems to work fine now, but I don't
have more tests to check if anything broke.

Sandro Santilli <strk>
Project Member
Mon 26 Feb 2007 10:04:30 AM UTC, comment #4:

The problem seems to be with the start and end shape
not having the same number of paths defined.

First shape has 37 paths.
Last shape has 24 paths.
Number of total edges in the paths is the same (1942).

Could you try reproducing this situation with a smaller
testcase focused on shape morphing ?

Best would be doing this using Ming.

Sandro Santilli <strk>
Project Member
Mon 19 Feb 2007 04:27:58 AM UTC, comment #3:

valgrind log on the second movie:

==29209== Use of uninitialised value of size 4
==29209== at 0x41801D8: gnash::morph2_character_def::display(gnash::character*) (morph2_character_def.cpp:95)
==29209== by 0x40BFF20: gnash::generic_character::display() (generic_character.h:68)
==29209== by 0x40FB2C9: gnash::DisplayList::display() (dlist.cpp:656)
==29209== by 0x40C5DFD: gnash::sprite_instance::display() (sprite_instance.cpp:2933)
==29209== by 0x40C195A: gnash::movie_root::display() (movie_root.cpp:519)
==29209== by 0x40301B5: gnash::Gui::display(gnash::movie_root*) (gui.cpp:323)
==29209== by 0x40304D3: gnash::Gui::advance_movie(gnash::Gui*) (gui.cpp:385)
==29209== by 0x576E215: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x576DC41: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770C1E: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770FC8: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x531CF83: gtk_main (in /usr/lib/libgtk-x11-2.0.so.0.1000.9)
==29209==
==29209== Invalid read of size 4
==29209== at 0x41801D8: gnash::morph2_character_def::display(gnash::character*) (morph2_character_def.cpp:95)
==29209== by 0x40BFF20: gnash::generic_character::display() (generic_character.h:68)
==29209== by 0x40FB2C9: gnash::DisplayList::display() (dlist.cpp:656)
==29209== by 0x40C5DFD: gnash::sprite_instance::display() (sprite_instance.cpp:2933)
==29209== by 0x40C195A: gnash::movie_root::display() (movie_root.cpp:519)
==29209== by 0x40301B5: gnash::Gui::display(gnash::movie_root*) (gui.cpp:323)
==29209== by 0x40304D3: gnash::Gui::advance_movie(gnash::Gui*) (gui.cpp:385)
==29209== by 0x576E215: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x576DC41: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770C1E: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770FC8: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x531CF83: gtk_main (in /usr/lib/libgtk-x11-2.0.so.0.1000.9)
==29209== Address 0x45A3A980 is not stack'd, malloc'd or (recently) free'd
==29209==
==29209== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==29209== Access not within mapped region at address 0x45A3A980
==29209== at 0x41801D8: gnash::morph2_character_def::display(gnash::character*) (morph2_character_def.cpp:95)
==29209== by 0x40BFF20: gnash::generic_character::display() (generic_character.h:68)
==29209== by 0x40FB2C9: gnash::DisplayList::display() (dlist.cpp:656)
==29209== by 0x40C5DFD: gnash::sprite_instance::display() (sprite_instance.cpp:2933)
==29209== by 0x40C195A: gnash::movie_root::display() (movie_root.cpp:519)
==29209== by 0x40301B5: gnash::Gui::display(gnash::movie_root*) (gui.cpp:323)
==29209== by 0x40304D3: gnash::Gui::advance_movie(gnash::Gui*) (gui.cpp:385)
==29209== by 0x576E215: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x576DC41: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770C1E: (within /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x5770FC8: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1200.9)
==29209== by 0x531CF83: gtk_main (in /usr/lib/libgtk-x11-2.0.so.0.1000.9)

Hubert Figuiere <hub>
Mon 19 Feb 2007 03:37:21 AM UTC, comment #2:

Just as a followup note, this bug is on a Feisty system. Feisty is the not yet released version of Ubuntu that follows Edgy. (6.10)

Rob Savoye <rsavoye>
Project Administrator
Mon 19 Feb 2007 02:48:17 AM UTC, comment #1:

This file too. Same stack trace.

http://content.boredmuch.com/flash/505e567dd3d0be0.swf

Hubert Figuiere <hub>
Mon 19 Feb 2007 02:44:33 AM UTC, original submission:

gnash CVS randomly crash with that movie (see late for URL). By randomly, I mean that sometime it does, sometime it does not. But the stack trace is consistent.

The file is there:
http://content.boredmuch.com/flash/568db6323c3109f.swf

gdb stack trace:

#0 gnash::morph2_character_def::display (this=0x822a8c0, inst=0x847e360) at ../../../../gnash/server/parser/morph2_character_def.cpp:95
#1 0x400b8f21 in gnash::generic_character::display (this=0x847e360) at ../../../gnash/server/generic_character.h:68
#2 0x400f42ca in gnash::DisplayList::display (this=0x81bd924) at ../../../gnash/server/dlist.cpp:656
#3 0x400bedfe in gnash::sprite_instance::display (this=0x81bd868) at ../../../gnash/server/sprite_instance.cpp:2933
#4 0x400ba95b in gnash::movie_root::display (this=0x81c0fb0) at ../../../gnash/server/movie_root.cpp:519
#5 0x400291b6 in gnash::Gui::display (this=0x8051278, m=0x81c0fb0) at ../../../gnash/gui/gui.cpp:323
#6 0x400294d4 in gnash::Gui::advance_movie (gui=0x8051278) at ../../../gnash/gui/gui.cpp:385

Compiler is gcc 4.1.2. Linux Ubuntu Feisty.

Hubert Figuiere <hub>

 

(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 bwy (Posted a comment)
  • -unavailable- added by cmusick (Posted a comment)
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by rsavoye (Posted a comment)
  • -unavailable- added by hub (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 11 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 30 Sep 2010 10:43:13 AM UTCbwyAssigned tocmusick=>None
    Sat 20 Sep 2008 06:52:41 PM UTCbwyStatusReady For Test=>Confirmed
    Mon 10 Sep 2007 04:34:38 AM UTCcmusickStatusConfirmed=>Ready For Test
      Assigned toNone=>cmusick
    Mon 26 Feb 2007 12:34:19 PM UTCstrkStatusReady For Test=>Confirmed
      Assigned tostrk=>None
      Summaryrandom crash in shape morph display=>Problems in shape morph display (with possibly malformed SWF)
    Mon 26 Feb 2007 10:43:28 AM UTCstrkCategoryNone=>core
      StatusNone=>Ready For Test
      Assigned toNone=>strk
    Mon 26 Feb 2007 10:05:42 AM UTCstrkSummaryrandom crash =>random crash in shape morph display

    Back to the top


    Powered by Savane 3.1-cleanup1