gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...
Date: Sat, 19 Aug 2006 15:01:54 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/08/19 15:01:54

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp sprite_instance.h 

Log message:
                * server/sprite_instance.h, server/sprite_instance.cpp
                  (execute_frame_tags, execute_frame_tags_reverse):
                  modified to take size_t for frame number; small cleanups      
                  and optimizations by use of standard algorithms.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.655&r2=1.656
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.35&r2=1.36
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.16&r2=1.17

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.655
retrieving revision 1.656
diff -u -b -r1.655 -r1.656
--- ChangeLog   19 Aug 2006 13:52:48 -0000      1.655
+++ ChangeLog   19 Aug 2006 15:01:54 -0000      1.656
@@ -1,5 +1,9 @@
 2006-08-19 Sandro Santilli  <address@hidden>
 
+       * server/sprite_instance.h, server/sprite_instance.cpp
+         (execute_frame_tags, execute_frame_tags_reverse):
+         modified to take size_t for frame number; small cleanups
+         and optimizations by use of standard algorithms.
        * server/button.cpp, server/morph2.cpp: added missing
          IF_VERBOSE_PARSE wrapping.
        * server/swf/ASHandlers.cpp: fixed read of 'skip' count in

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- server/sprite_instance.cpp  19 Aug 2006 13:15:40 -0000      1.35
+++ server/sprite_instance.cpp  19 Aug 2006 15:01:54 -0000      1.36
@@ -48,10 +48,6 @@
 #include <pthread.h>
 #endif
 
-#include <vector>
-#include <string>
-#include <math.h>
-
 #include "log.h" 
 //#include "action.h" 
 #include "gnash.h"
@@ -67,6 +63,13 @@
 #include "Key.h"
 #include "movie_root.h"
 
+#include <vector>
+#include <string>
+#include <math.h>
+
+#include <functional> // for mem_fun, bind1st
+#include <algorithm> // for for_each
+
 using namespace std;
 
 namespace gnash {
@@ -1365,61 +1368,58 @@
 }
 #endif
 
-/* virtual public, reimplemented from gnash::movie */
-void sprite_instance::execute_frame_tags(int frame,
-       bool state_only)
+void
+sprite_instance::execute_frame_tags(size_t frame, bool state_only)
 {
 
     // Keep this (particularly m_as_environment) alive during execution!
     smart_ptr<as_object>       this_ptr(this);
 
-    assert(frame >= 0);
-    assert((size_t)frame < m_def->get_frame_count());
+       assert(frame < m_def->get_frame_count());
 
     // Execute this frame's init actions, if necessary.
     if (m_init_actions_executed[frame] == false)
        {
-           const std::vector<execute_tag*>*    init_actions = 
m_def->get_init_actions(frame);
-           if (init_actions && init_actions->size() > 0)
+               const std::vector<execute_tag*>* init_actions = 
+                       m_def->get_init_actions(frame);
+
+               if ( init_actions && ! init_actions->empty() )
                {
+
                    // Need to execute these actions.
-                   for (unsigned int i= 0; i < init_actions->size(); i++)
-                       {
-                           execute_tag*        e = (*init_actions)[i];
-                           e->execute(this);
-                       }
+                       for_each(init_actions->begin(), init_actions->end(),
+                               bind2nd(mem_fun(&execute_tag::execute), this));
 
-                   // Mark this frame done, so we never execute these init 
actions
-                   // again.
+                       // Mark this frame done, so we never execute these
+                       // init actions again.
                    m_init_actions_executed[frame] = true;
                }
        }
 
     const std::vector<execute_tag*>&   playlist = m_def->get_playlist(frame);
-    for (unsigned int i = 0; i < playlist.size(); i++)
-       {
-           execute_tag*        e = playlist[i];
            if (state_only)
                {
-                   e->execute_state(this);
+               for_each(playlist.begin(), playlist.end(),
+                       bind2nd(mem_fun(&execute_tag::execute_state), this));
                }
            else
                {
-                   e->execute(this);
-               }
+               for_each(playlist.begin(), playlist.end(),
+                       bind2nd(mem_fun(&execute_tag::execute), this));
        }
 }
 
-void sprite_instance::execute_frame_tags_reverse(int frame)
+void sprite_instance::execute_frame_tags_reverse(size_t frame)
 {
+
     // Keep this (particularly m_as_environment) alive during execution!
     smart_ptr<as_object>       this_ptr(this);
 
-    assert(frame >= 0);
-    assert((size_t)frame < m_def->get_frame_count());
+       assert(frame < m_def->get_frame_count());
 
     const std::vector<execute_tag*>&   playlist = m_def->get_playlist(frame);
-    for (unsigned int i = 0; i < playlist.size(); i++)
+
+       for (unsigned int i=0, n=playlist.size(); i<n; ++i)
        {
            execute_tag*        e = playlist[i];
            e->execute_state_reverse(this, frame);

Index: server/sprite_instance.h
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- server/sprite_instance.h    6 Aug 2006 02:00:54 -0000       1.16
+++ server/sprite_instance.h    19 Aug 2006 15:01:54 -0000      1.17
@@ -211,7 +211,7 @@
 
        /// Execute the tags associated with the specified frame.
        /// frame is 0-based
-       void execute_frame_tags(int frame, bool state_only = false);
+       void execute_frame_tags(size_t frame, bool state_only = false);
 
 
        /// Execute the tags associated with the specified frame,
@@ -221,7 +221,7 @@
        /// add, move, remove, replace.
        ///
        /// frame is 0-based
-       void execute_frame_tags_reverse(int frame);
+       void execute_frame_tags_reverse(size_t frame);
 
                
        execute_tag* find_previous_replace_or_add_tag(int frame,




reply via email to

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