CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/09/04 08:23:19

Modified files:
        .              : ChangeLog 
        server         : dlist.cpp 

Log message:
                * server/dlist.cpp (reset): don't ::unload() again
                  on already unloaded characters. They might still be
                  in the list (and not in the removed zone) due to their
                  having an onUnload handler to be invoked when their parent
                  was unloaded. Fixes last assertion failure in bug #20949
                  (copter.swf)

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4210&r2=1.4211
http://cvs.savannah.gnu.org/viewcvs/gnash/server/dlist.cpp?cvsroot=gnash&r1=1.84&r2=1.85

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4210
retrieving revision 1.4211
diff -u -b -r1.4210 -r1.4211
--- ChangeLog   4 Sep 2007 05:43:56 -0000       1.4210
+++ ChangeLog   4 Sep 2007 08:23:19 -0000       1.4211
@@ -1,3 +1,12 @@
+2007-09-04 Sandro Santilli <[EMAIL PROTECTED]>
+
+       * server/dlist.cpp (reset): don't ::unload() again
+         on already unloaded characters. They might still be
+         in the list (and not in the removed zone) due to their
+         having an onUnload handler to be invoked when their parent
+         was unloaded. Fixes last assertion failure in bug #20949
+         (copter.swf)
+
 2007-09-04 Zou Lunkai <[EMAIL PROTECTED]>
 
        * testsuite/misc-swfc.all/movieclip_destruction_test{1,3,4}.sc: more 
tests.

Index: server/dlist.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/dlist.cpp,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -b -r1.84 -r1.85
--- server/dlist.cpp    3 Sep 2007 17:37:37 -0000       1.84
+++ server/dlist.cpp    4 Sep 2007 08:23:19 -0000       1.85
@@ -599,6 +599,13 @@
                // Make a copy here, in case we're going to replace it
                DisplayItem di = *it;
 
+               // Character already unloaded, leave it where it is
+               if ( di->isUnloaded() )
+               {
+                       ++it;
+                       continue;
+               }
+
                int di_depth = di->get_depth();
 
                /// We won't scan chars in the dynamic depth zone


_______________________________________________
Gnash-commit mailing list
Gnash-commit@gnu.org
http://lists.gnu.org/mailman/listinfo/gnash-commit

Reply via email to