gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/ASHandlers.cpp
Date: Sun, 16 Dec 2007 10:10:52 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/12/16 10:10:52

Modified files:
        .              : ChangeLog 
        server/vm      : ASHandlers.cpp 

Log message:
        Don't assume values found on stack on IMPLEMENTSOP are all functions. 
        Fixes bug #21811.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5186&r2=1.5187
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.171&r2=1.172

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5186
retrieving revision 1.5187
diff -u -b -r1.5186 -r1.5187
--- ChangeLog   16 Dec 2007 09:17:21 -0000      1.5186
+++ ChangeLog   16 Dec 2007 10:10:51 -0000      1.5187
@@ -1,3 +1,9 @@
+2007-12-16 Sandro Santilli <address@hidden>
+
+       * server/vm/ASHandlers.cpp (ActionImplementsOp):
+         Don't assume values found on stack are all functions.
+         Fixes bug #21811.
+
 2007-12-16 Benjamin Wolsey <address@hidden>
 
        * gui/Player.cpp: allow setting base URL with -P (to support 

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -b -r1.171 -r1.172
--- server/vm/ASHandlers.cpp    14 Dec 2007 20:51:21 -0000      1.171
+++ server/vm/ASHandlers.cpp    16 Dec 2007 10:10:52 -0000      1.172
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: ASHandlers.cpp,v 1.171 2007/12/14 20:51:21 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.172 2007/12/16 10:10:52 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1435,7 +1435,16 @@
        thread.ensureStack(count);
        while (count--)
        {
-               as_object *inter = 
env.pop().to_as_function()->getPrototype().get();
+               as_value funval = env.pop();
+               as_function* fun = funval.to_as_function();
+               if ( ! fun )
+               {
+                       IF_VERBOSE_ASCODING_ERRORS(
+                       log_aserror(_("class found on stack on IMPLEMENTSOP is 
not a function: %s"), funval.to_debug_string().c_str());
+                       );
+                       continue;
+               }
+               as_object *inter = fun->getPrototype().get();
                obj->add_interface(inter);
        }
 }




reply via email to

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