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: Wed, 20 Feb 2008 17:00:44 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/02/20 17:00:43

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

Log message:
        (ActionImplementsOp): better logging, catch bogus opcodes.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5707&r2=1.5708
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/ASHandlers.cpp?cvsroot=gnash&r1=1.197&r2=1.198

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5707
retrieving revision 1.5708
diff -u -b -r1.5707 -r1.5708
--- ChangeLog   20 Feb 2008 15:59:43 -0000      1.5707
+++ ChangeLog   20 Feb 2008 17:00:41 -0000      1.5708
@@ -1,5 +1,7 @@
 2008-02-20 Sandro Santilli <address@hidden>
 
+       * server/vm/ASHandlers.cpp (ActionImplementsOp): better logging,
+         catch bogus opcodes.
        * server/vm/ASHandlers.cpp (CommonGetUrl): only loadVariables if
          targetLoad flag is set (tested). Log an SWF error if loadVariables
          is set but targtLoad is clear.

Index: server/vm/ASHandlers.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/ASHandlers.cpp,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -b -r1.197 -r1.198
--- server/vm/ASHandlers.cpp    20 Feb 2008 15:59:44 -0000      1.197
+++ server/vm/ASHandlers.cpp    20 Feb 2008 17:00:43 -0000      1.198
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: ASHandlers.cpp,v 1.197 2008/02/20 15:59:44 strk Exp $ */
+/* $Id: ASHandlers.cpp,v 1.198 2008/02/20 17:00:43 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -1420,19 +1420,33 @@
 
        thread.ensureStack(2);
 
-       as_object *obj = env.pop().to_object().get();
+       as_value objval = env.pop();
+       as_object *obj = objval.to_object().get();
        int count = static_cast<int>(env.pop().to_number());
        as_value a(1);
 
        if (!obj)
        {
-               log_debug(_("In ImplementsOp, not an object.\n"));
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror(_("Stack value on IMPLEMENTSOP is not an object: 
%s."),
+                       objval.to_debug_string().c_str());
+               );
                return;
        }
        obj = obj->get_prototype().get();
        if (!obj)
        {
-               log_debug(_("In ImplementsOp, object had no prototype.\n"));
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror(_("Target object for IMPLEMENTSOP has no 
prototype."));
+               );
+               return;
+       }
+
+       if ( count <= 0 )
+       {
+               IF_VERBOSE_ASCODING_ERRORS(
+               log_aserror(_("Invalid interfaces count (%d) on IMPLEMENTSOP"), 
count);
+               );
                return;
        }
 




reply via email to

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