[Top][All Lists]
[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: |
Sun, 11 Nov 2007 18:01:12 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/11/11 18:01:12
Modified files:
. : ChangeLog
server : sprite_instance.cpp
Log message:
(sprite_attach_movie): mark the character as dynamic before placing on
stage
so stagePlacementCallback knows about that);
(stagePlacementCallback): don't construct as object here, let that be
done
on INITIALIZE event;
(on_event): construct as ActionScript object before running INITIALIZE
handlers.
Fixes bug #21556 (youtube regression) - shows how weak our testsuite is
in this
reguard...
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4827&r2=1.4828
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.380&r2=1.381
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4827
retrieving revision 1.4828
diff -u -b -r1.4827 -r1.4828
--- ChangeLog 10 Nov 2007 23:07:33 -0000 1.4827
+++ ChangeLog 11 Nov 2007 18:01:12 -0000 1.4828
@@ -1,3 +1,12 @@
+2007-11-11 Sandro Santilli <address@hidden>
+
+ * server/sprite_instance.cpp (sprite_attach_movie): mark the character
+ as dynamic before placing on stage (so stagePlacementCallback knows
+ about that); (stagePlacementCallback): don't construct as object
+ here, let that be done on INITIALIZE event; (on_event): construct
+ as ActionScript object before running INITIALIZE handlers.
+ Fixes bug #21556 (youtube regression).
+
2007-11-10 Sandro Santilli <address@hidden>
* server/sprite_instance.cpp (goto_frame): always set
Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.380
retrieving revision 1.381
diff -u -b -r1.380 -r1.381
--- server/sprite_instance.cpp 10 Nov 2007 23:07:34 -0000 1.380
+++ server/sprite_instance.cpp 11 Nov 2007 18:01:12 -0000 1.381
@@ -201,6 +201,7 @@
#endif // ndef GNASH_USE_GC
newch->set_name(newname.c_str());
+ newch->setDynamic();
// place_character() will set depth on newch
if ( ! sprite->attachCharacter(*newch, depth_val) )
@@ -209,8 +210,6 @@
return rv;
}
- newch->setDynamic();
-
/// Properties must be copied *after* the call to attachCharacter
/// because attachCharacter() will reset matrix !!
if (fn.nargs > 3 ) {
@@ -2148,7 +2147,7 @@
return false;
}
-#if 0
+#if 1
if ( id.m_id == event_id::INITIALIZE )
{
// Construct as ActionScript object.
@@ -3378,16 +3377,25 @@
// We *might* avoid this, but better safe then sorry
m_def->ensure_frame_loaded(0);
- constructAsScriptObject();
- // TODO: should we execute these immediately if jumping
- // due to a gotoFrame ?
+ // We execute events immediately when the stage-placed character is
dynamic.
+ // This is becase we assume that this means that the character is
placed during
+ // processing of actions (opposed that during advancement iteration).
+ //
+ // A more general implementation might ask movie_root about it's state
+ // (iterating or processing actions?)
+ // Another possibility to inspect could be letting movie_root decide
+ // when to really queue and when rather to execute immediately the
+ // events with priority INITIALIZE or CONSTRUCT ...
+ //
if ( isDynamic() )
{
+ //log_debug("Sprite %s is dynamic, sending INITIALIZE and
CONSTRUCT events immediately", getTarget().c_str());
on_event(event_id::INITIALIZE);
on_event(event_id::CONSTRUCT);
}
else
{
+ //log_debug("Sprite %s is not dynamic, queuing INITIALIZE and
CONSTRUCT events", getTarget().c_str());
queueEvent(event_id::INITIALIZE, movie_root::apINIT);
queueEvent(event_id::CONSTRUCT, movie_root::apCONSTRUCT);
}