[Top][All Lists]
[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,
- [Gnash-commit] gnash ChangeLog server/sprite_instance.cpp serv...,
Sandro Santilli <=