CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/06/16 10:40:57
Modified files: . : ChangeLog server/parser : morph2_character_def.cpp morph2_character_def.h Log message: * server/parser/morph2_character_def.{cpp,h}: do not explicitly delete the shape_character_defs, rather keep by intrusive_ptr (which means leave ownership to the GC in the GC case). CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.3559&r2=1.3560 http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/morph2_character_def.cpp?cvsroot=gnash&r1=1.9&r2=1.10 http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/morph2_character_def.h?cvsroot=gnash&r1=1.2&r2=1.3 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.3559 retrieving revision 1.3560 diff -u -b -r1.3559 -r1.3560 --- ChangeLog 16 Jun 2007 09:17:34 -0000 1.3559 +++ ChangeLog 16 Jun 2007 10:40:56 -0000 1.3560 @@ -1,5 +1,11 @@ 2007-06-16 Sandro Santilli <[EMAIL PROTECTED]> + * server/parser/morph2_character_def.{cpp,h}: do not explicitly + delete the shape_character_defs, rather keep by intrusive_ptr + (which means leave ownership to the GC in the GC case). + +2007-06-16 Sandro Santilli <[EMAIL PROTECTED]> + * server/asobj/NetStream.{h,cpp}: implement markReachableResources. * server/asobj/gen-asclass.sh: updated template to include a sample of a markReachableResources implementation. Index: server/parser/morph2_character_def.cpp =================================================================== RCS file: /sources/gnash/gnash/server/parser/morph2_character_def.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -b -r1.9 -r1.10 --- server/parser/morph2_character_def.cpp 14 Jun 2007 02:03:18 -0000 1.9 +++ server/parser/morph2_character_def.cpp 16 Jun 2007 10:40:56 -0000 1.10 @@ -17,7 +17,7 @@ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // -/* $Id: morph2_character_def.cpp,v 1.9 2007/06/14 02:03:18 zoulunkai Exp $ */ +/* $Id: morph2_character_def.cpp,v 1.10 2007/06/16 10:40:56 strk Exp $ */ // Based on the public domain morph2.cpp of: // Thatcher Ulrich <[EMAIL PROTECTED]>, Mike Shaver <[EMAIL PROTECTED]> 2003, @@ -108,8 +108,6 @@ morph2_character_def::~morph2_character_def() { - delete m_shape2; - delete m_shape1; } void morph2_character_def::display(character* inst) Index: server/parser/morph2_character_def.h =================================================================== RCS file: /sources/gnash/gnash/server/parser/morph2_character_def.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- server/parser/morph2_character_def.h 14 Jun 2007 08:23:14 -0000 1.2 +++ server/parser/morph2_character_def.h 16 Jun 2007 10:40:57 -0000 1.3 @@ -33,9 +33,24 @@ return m_bound; } + protected: + +#ifdef GNASH_USE_GC + /// Mark all reachable resources of a morph2_character_def, for the GC + // + /// Reachable resources are: + /// - The start and end shapes (m_shape1, m_shape2) + /// + virtual void markReachableResources() const + { + if ( m_shape1 ) m_shape1->setReachable(); + if ( m_shape2 ) m_shape2->setReachable(); + } +#endif // GNASH_USE_GC + private: - shape_character_def* m_shape1; - shape_character_def* m_shape2; + boost::intrusive_ptr<shape_character_def> m_shape1; + boost::intrusive_ptr<shape_character_def> m_shape2; unsigned int offset; int fill_style_count; int line_style_count; _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit