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


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp
Date: Fri, 21 Sep 2007 10:03:44 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/09/21 10:03:44

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp 

Log message:
                * server/sprite_instance.cpp (execute_frame_tags): optimized
                  execution loop and avoid calling both execute_state and
                  execute_action (this is propedeutic for DoInitAction possibly
                  needing to execute in both cases).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4367&r2=1.4368
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.353&r2=1.354

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4367
retrieving revision 1.4368
diff -u -b -r1.4367 -r1.4368
--- ChangeLog   21 Sep 2007 08:29:01 -0000      1.4367
+++ ChangeLog   21 Sep 2007 10:03:44 -0000      1.4368
@@ -1,5 +1,12 @@
 2007-09-21 Sandro Santilli <address@hidden>
 
+       * server/sprite_instance.cpp (execute_frame_tags): optimized
+         execution loop and avoid calling both execute_state and 
+         execute_action (this is propedeutic for DoInitAction possibly
+         needing to execute in both cases).
+
+2007-09-21 Sandro Santilli <address@hidden>
+
        * server/character.h, server/dlist.cpp,
          server/button_character_instance.{cpp,h},
          server/movie_instance.{cpp,h}, server/movie_root.cpp,

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.353
retrieving revision 1.354
diff -u -b -r1.353 -r1.354
--- server/sprite_instance.cpp  21 Sep 2007 08:29:02 -0000      1.353
+++ server/sprite_instance.cpp  21 Sep 2007 10:03:44 -0000      1.354
@@ -2386,6 +2386,8 @@
 
        assert(frame < m_def->get_frame_count());
 
+       assert(typeflags);
+
        const PlayList* playlist = m_def->getPlaylist(frame);
        if ( playlist )
        {
@@ -2397,12 +2399,19 @@
                                getTargetPath().c_str());
                );
 
-               for (PlayList::const_iterator it=playlist->begin(), 
itEnd=playlist->end();
-                               it != itEnd; ++it)
+               if ( (typeflags&TAG_DLIST) && (typeflags&TAG_ACTION) )
+               {
+                       std::for_each( playlist->begin(), playlist->end(), 
boost::bind(&execute_tag::execute, _1, this) );
+               }
+               else if ( typeflags & TAG_DLIST )
+               {
+                       assert( ! (typeflags & TAG_ACTION) );
+                       std::for_each( playlist->begin(), playlist->end(), 
boost::bind(&execute_tag::execute_state, _1, this) );
+               }
+               else
                {
-                       execute_tag* tag = *it;
-                       if ( typeflags & TAG_DLIST ) tag->execute_state(this);
-                       if ( typeflags & TAG_ACTION ) tag->execute_action(this);
+                       assert(typeflags & TAG_ACTION);
+                       std::for_each(playlist->begin(), playlist->end(), 
boost::bind(&execute_tag::execute_action, _1, this));
                }
        }
 




reply via email to

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