gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/Function.cpp server/as_e...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/Function.cpp server/as_e...
Date: Fri, 07 Jul 2006 12:36:10 +0000

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

Modified files:
        .              : ChangeLog 
        server         : Function.cpp as_environment.cpp 
                         as_environment.h 

Log message:
                * server/Function.cpp: fixed local registers handling in 
operator()
                for function2 (see the 1-based register WARNING below).
                * server/as_environment.cpp, server/as_environment.h:
                outlined local register functions, adding assertion checking.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.475&r2=1.476
http://cvs.savannah.gnu.org/viewcvs/gnash/server/Function.cpp?cvsroot=gnash&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_environment.h?cvsroot=gnash&r1=1.13&r2=1.14

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.475
retrieving revision 1.476
diff -u -b -r1.475 -r1.476
--- ChangeLog   7 Jul 2006 01:01:11 -0000       1.475
+++ ChangeLog   7 Jul 2006 12:36:10 -0000       1.476
@@ -1,5 +1,9 @@
 2006-07-07 Sandro Santilli <address@hidden>
 
+       * server/Function.cpp: fixed local registers handling in operator()
+       for function2 (see the 1-based register WARNING below).
+       * server/as_environment.cpp, server/as_environment.h:
+       outlined local register functions, adding assertion checking.
        * server/ActionExec.cpp, server/MovieClipLoader.cpp,
        server/as_environment.cpp, server/as_environment.h,
        server/character.cpp, server/character.h, server/sprite_instance.cpp,

Index: server/Function.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/Function.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- server/Function.cpp 5 Jul 2006 23:56:08 -0000       1.25
+++ server/Function.cpp 7 Jul 2006 12:36:10 -0000       1.26
@@ -247,7 +247,9 @@
                }
 
                // Handle the implicit args.
-               int     current_reg = 0;
+               // @@ why start at 1 ? Note that starting at 0 makes    
+               // intro.swf movie fail to play correctly.
+               uint8_t current_reg = 1;
                if (m_function2_flags & 0x01)
                {
                        // preload 'this' into a register.

Index: server/as_environment.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/as_environment.cpp   7 Jul 2006 01:01:11 -0000       1.11
+++ server/as_environment.cpp   7 Jul 2006 12:36:10 -0000       1.12
@@ -276,6 +276,27 @@
     m_variables[varname] = val;
 }
 
+as_value&
+as_environment::local_register(uint8_t n)
+{
+       assert( n < m_local_register.size() );
+       return m_local_register[n];
+}
+
+void
+as_environment::drop_local_registers(unsigned int register_count)
+{
+       assert(register_count <= m_local_register.size());
+       m_local_register.resize(m_local_register.size() - register_count);
+}
+
+void
+as_environment::add_local_registers(unsigned int register_count)
+{
+       m_local_register.resize(m_local_register.size() + register_count);
+}
+
+
 #if 0
 as_value*
 as_environment::local_register_ptr(unsigned int reg)

Index: server/as_environment.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_environment.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/as_environment.h     7 Jul 2006 01:01:11 -0000       1.13
+++ server/as_environment.h     7 Jul 2006 12:36:10 -0000       1.14
@@ -199,15 +199,11 @@
        }
        void    add_frame_barrier() { m_local_frames.push_back(frame_slot()); }
 
-       // Local registers.
-       void    add_local_registers(unsigned int register_count)
-       {
-               m_local_register.resize(m_local_register.size() + 
register_count);
-       }
-       void    drop_local_registers(unsigned int register_count)
-       {
-               m_local_register.resize(m_local_register.size() - 
register_count);
-       }
+       // Add 'count' local registers (add space to end)
+       void    add_local_registers(unsigned int register_count);
+
+       // Drop 'count' local registers (drop space from end)
+       void    drop_local_registers(unsigned int register_count);
 
        /// \brief
        /// Return a pointer to the specified local register.
@@ -219,12 +215,9 @@
        /// not dangerous.
        //as_value* local_register_ptr(unsigned int reg);
 
+       /// \brief
        /// Return a reference to the Nth local register.
-       as_value& local_register(uint8_t n)
-       {
-               assert( n < m_local_register.size() );
-               return m_local_register[n];
-       }
+       as_value& local_register(uint8_t n);
 
        /// Return a reference to the Nth global register.
        as_value& global_register(unsigned int n)




reply via email to

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