CVSROOT: /sources/gnash Module name: gnash Changes by: Sandro Santilli <strk> 07/11/08 22:40:43
Modified files: . : ChangeLog server/asobj : Color.cpp Log message: * server/asobj/Color.cpp (color_ctor): parse first argument to Color constructor as a string (if not a MovieClip). Fixes http://www.lsfrench.com/school/couleur/colorepaint.swf. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4810&r2=1.4811 http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Color.cpp?cvsroot=gnash&r1=1.15&r2=1.16 Patches: Index: ChangeLog =================================================================== RCS file: /sources/gnash/gnash/ChangeLog,v retrieving revision 1.4810 retrieving revision 1.4811 diff -u -b -r1.4810 -r1.4811 --- ChangeLog 8 Nov 2007 17:16:12 -0000 1.4810 +++ ChangeLog 8 Nov 2007 22:40:43 -0000 1.4811 @@ -1,3 +1,9 @@ +2007-11-08 Sandro Santilli <[EMAIL PROTECTED]> + + * server/asobj/Color.cpp (color_ctor): parse first argument to + Color constructor as a string (if not a MovieClip). + Fixes http://www.lsfrench.com/school/couleur/colorepaint.swf. + 2007-11-08 Udo Giacomozzi <[EMAIL PROTECTED]> * testsuite/misc-ming.all/DrawingApiTestRunner.cpp: reverted because Index: server/asobj/Color.cpp =================================================================== RCS file: /sources/gnash/gnash/server/asobj/Color.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -b -r1.15 -r1.16 --- server/asobj/Color.cpp 2 Nov 2007 18:02:08 -0000 1.15 +++ server/asobj/Color.cpp 8 Nov 2007 22:40:43 -0000 1.16 @@ -344,14 +344,26 @@ sprite_instance* sp=0; if ( fn.nargs ) { - boost::intrusive_ptr<as_object> arg = fn.arg(0).to_object(); - if ( arg ) sp = arg->to_movie(); + const as_value& arg = fn.arg(0); + + // TODO: check what should happen if the argument is + // a not-unloaded sprite but another exist with same + // target at lower depth (always looking up would return + // the lowest depth) + sp = arg.to_sprite(); + if ( ! sp ) + { + // must be a target.. + as_environment& env = fn.env(); + character* ch = env.find_target(fn.arg(0).to_string(&env)); + if ( ch ) sp = ch->to_movie(); + } IF_VERBOSE_ASCODING_ERRORS( if ( ! sp ) { std::stringstream ss; fn.dump_args(ss); - log_aserror(_("new Color(%s) : first argument doesn't evaluate to a MovieClip"), + log_aserror(_("new Color(%s) : first argument doesn't evaluate or point to a MovieClip"), ss.str().c_str()); } ) _______________________________________________ Gnash-commit mailing list Gnash-commit@gnu.org http://lists.gnu.org/mailman/listinfo/gnash-commit