CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/06/19 22:25:55
Modified files: . : ChangeLog server : sprite_instance.cpp sprite_instance.h Log message: * server/sprite_instance.{cpp,h}: (markReachableResources): Mark textfield variables and relative root. Fixes segfault in movie reported in bug #19883, and also shows that the GC model does it's job in this case. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3585&r2=1.3586 http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.290&r2=1.291 http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.124&r2=1.125 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.3585 retrieving revision 1.3586 diff -u -b -r1.3585 -r1.3586 --- ChangeLog 19 Jun 2007 21:58:59 -0000 1.3585 +++ ChangeLog 19 Jun 2007 22:25:54 -0000 1.3586 @@ -1,5 +1,12 @@ 2007-06-19 Sandro Santilli <[EMAIL PROTECTED]> + * server/sprite_instance.{cpp,h}: (markReachableResources): + Mark textfield variables and relative root. + Fixes segfault in movie reported in bug #19883, and also + shows that the GC model does it's job in this case. + +2007-06-19 Sandro Santilli <[EMAIL PROTECTED]> + * gui/NullGui.{cpp,h}: implement setTimeout call. fixes bug #20118. Index: server/sprite_instance.cpp =================================================================== RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v retrieving revision 1.290 retrieving revision 1.291 diff -u -b -r1.290 -r1.291 --- server/sprite_instance.cpp 17 Jun 2007 22:09:23 -0000 1.290 +++ server/sprite_instance.cpp 19 Jun 2007 22:25:55 -0000 1.291 @@ -4013,6 +4013,21 @@ // Mark our own definition if ( m_def.get() ) m_def->setReachable(); + // Mark textfields in the TextfieldMap + if ( _text_variables.get() ) + { + for(TextfieldMap::const_iterator i=_text_variables->begin(), + e=_text_variables->end(); + i!=e; ++i) + { + i->second->setReachable(); + } + } + + // Mark our relative root + assert(m_root != NULL); + m_root->setReachable(); + markCharacterReachable(); } Index: server/sprite_instance.h =================================================================== RCS file: /sources/gnash/gnash/server/sprite_instance.h,v retrieving revision 1.124 retrieving revision 1.125 diff -u -b -r1.124 -r1.125 --- server/sprite_instance.h 19 Jun 2007 18:42:50 -0000 1.124 +++ server/sprite_instance.h 19 Jun 2007 22:25:55 -0000 1.125 @@ -1005,6 +1005,8 @@ /// - Drawable instance (_drawable_inst) /// - sprite environment /// - definition the sprite has been instantiated from + /// - Textfields having an associated variable registered in this instance. + /// - Relative root of this instance (m_root) /// virtual void markReachableResources() const; #endif // GNASH_USE_GC _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit