gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/asobj/Color.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/asobj/Color.cpp
Date: Thu, 08 Nov 2007 22:40:43 +0000

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 <address@hidden>
+
+       * 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 <address@hidden>
 
        * 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());
                }
                )




reply via email to

[Prev in Thread] Current Thread [Next in Thread]