gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/array.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/array.cpp
Date: Tue, 02 Oct 2007 12:52:49 +0000

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

Modified files:
        .              : ChangeLog 
        server         : array.cpp 

Log message:
                * server/array.cpp (as_value_custom call operator): use the
                  environment passed to us, not a newly created one.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4498&r2=1.4499
http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.80&r2=1.81

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4498
retrieving revision 1.4499
diff -u -b -r1.4498 -r1.4499
--- ChangeLog   2 Oct 2007 12:17:46 -0000       1.4498
+++ ChangeLog   2 Oct 2007 12:52:48 -0000       1.4499
@@ -1,5 +1,10 @@
 2007-10-02 Sandro Santilli <address@hidden>
 
+       * server/array.cpp (as_value_custom call operator): use the
+         environment passed to us, not a newly created one.
+
+2007-10-02 Sandro Santilli <address@hidden>
+
        * server/as_object.cpp (callMethod): fix order in which
          args are pushed on the stack [the version taking 2 args].
        * server/asobj/MovieClipLoader.cpp: initialize MovieClipLoader

Index: server/array.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/array.cpp,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -b -r1.80 -r1.81
--- server/array.cpp    19 Sep 2007 14:20:48 -0000      1.80
+++ server/array.cpp    2 Oct 2007 12:52:49 -0000       1.81
@@ -360,12 +360,21 @@
        bool operator() (const as_value& a, const as_value& b)
        {
                as_value cmp_method(&_comp);
-               as_environment env;
                as_value ret(0);
 
-               env.push(a);
-               env.push(b);
-               ret = call_method(cmp_method, &env, _object, 2, 1);
+#ifndef NDEBUG
+               size_t prevStackSize = _env.stack_size();
+#endif
+
+               _env.push(a);
+               _env.push(b);
+               ret = call_method(cmp_method, &_env, _object, 2, 
_env.stack_size()-1);
+               _env.drop(2);
+
+#ifndef NDEBUG
+               assert(prevStackSize == _env.stack_size());
+#endif
+
                return (*_zeroCmp)((int)ret.to_number(&_env));
        }
 };
@@ -915,6 +924,7 @@
 {
        boost::intrusive_ptr<as_array_object> array = 
                ensureType<as_array_object>(fn.this_ptr);
+
        as_environment& env = fn.env();
        uint8_t flags = 0;
 




reply via email to

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