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: Thu, 08 Mar 2007 13:00:26 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/03/08 13:00:24

Modified files:
        .              : ChangeLog 
        server         : sprite_instance.cpp 

Log message:
                * server/sprite_instance.cpp (construct):
                  Ensure first frame is loaded, to eventually not waiting for
                  ::advance to call ::construct and finally remove the startup
                  lateny we're currently experiencing;
                  (restart): call construct() directly, rather then postponing
                  the call to ::adnvace and relying on the crappy
                  m_onload_event_called flag.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2578&r2=1.2579
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.189&r2=1.190

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2578
retrieving revision 1.2579
diff -u -b -r1.2578 -r1.2579
--- ChangeLog   8 Mar 2007 11:35:50 -0000       1.2578
+++ ChangeLog   8 Mar 2007 13:00:19 -0000       1.2579
@@ -1,5 +1,15 @@
 2007-03-07 Sandro Santilli <address@hidden>
 
+       * server/sprite_instance.cpp (construct):
+         Ensure first frame is loaded, to eventually not waiting for
+         ::advance to call ::construct and finally remove the startup
+         lateny we're currently experiencing;
+         (restart): call construct() directly, rather then postponing
+         the call to ::adnvace and relying on the crappy
+         m_onload_event_called flag.
+
+2007-03-07 Sandro Santilli <address@hidden>
+
        * server/character.h: document set_event_hanlder,
          get_event_handler (as we're getting it wrong).
        * testsuite/actionscript.all/MovieClip.as:

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.189
retrieving revision 1.190
diff -u -b -r1.189 -r1.190
--- server/sprite_instance.cpp  8 Mar 2007 09:33:40 -0000       1.189
+++ server/sprite_instance.cpp  8 Mar 2007 13:00:21 -0000       1.190
@@ -3385,9 +3385,10 @@
     m_display_list.clear();
     oldDisplayList.clear();
 
-    // setting on_event_load_called will trigger
-    // a call to ::construct next time we advance
-    m_on_event_load_called = false;
+    // TODO: wipe out all members !!
+
+    // Construct the sprite again
+    construct();
 
 }
 
@@ -3632,21 +3633,30 @@
        log_msg("Constructing sprite '%s'", getTargetPath().c_str());
 #endif
 
+       // We *might* avoid this, but better safe then sorry
+       m_def->ensure_frame_loaded(0);
+
        // Backup the DisplayList *before* manipulating it !
        assert( oldDisplayList.empty() );
 
        on_event(event_id::CONSTRUCT);
        execute_frame_tags(0, TAG_DLIST|TAG_ACTION);    
 
+       if ( _name.empty() )
+       {
+               // instance name will be needed for properly setting up
+               // a reference to 'this' object for ActionScript actions.
+               // If the instance doesn't have a name, it will NOT be
+               // an ActionScript referenciable object so we don't have
+               // anything more to do.
+               return;
+       }
+
        sprite_definition* def = dynamic_cast<sprite_definition*>(m_def.get());
 
        // We won't "construct" top-level movies
        if ( ! def ) return;
 
-       // instance name will be needed for properly setting up
-       // a reference to 'this' object.
-       assert(!_name.empty());
-
        as_function* ctor = def->getRegisteredClass();
        //log_msg("Attached sprite's registered class is %p", (void*)ctor); 
 




reply via email to

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