gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/vm/action.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/vm/action.cpp
Date: Thu, 07 Dec 2006 17:22:51 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/12/07 17:22:51

Modified files:
        .              : ChangeLog 
        server/vm      : action.cpp 

Log message:
                * server/vm/action.cpp (attach_extern_movie):
                  store sprites in intrusive pointers (fixes some
                  testInvariant failures).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1882&r2=1.1883
http://cvs.savannah.gnu.org/viewcvs/gnash/server/vm/action.cpp?cvsroot=gnash&r1=1.3&r2=1.4

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1882
retrieving revision 1.1883
diff -u -b -r1.1882 -r1.1883
--- ChangeLog   7 Dec 2006 15:26:04 -0000       1.1882
+++ ChangeLog   7 Dec 2006 17:22:51 -0000       1.1883
@@ -1,5 +1,8 @@
 2006-12-07 Sandro Santilli <address@hidden>
 
+       * server/vm/action.cpp (attach_extern_movie): 
+         store sprites in intrusive pointers (fixes some
+         testInvariant failures).
        * server/as_environment.cpp (dump_global_registers):
          don't print anything if none of the registers are defined.
        * testsuite/actionscript.all/String.as:

Index: server/vm/action.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/vm/action.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- server/vm/action.cpp        6 Dec 2006 10:21:32 -0000       1.3
+++ server/vm/action.cpp        7 Dec 2006 17:22:51 -0000       1.4
@@ -140,18 +140,19 @@
 {
        URL url(c_url);
 
-       movie_definition* md = create_library_movie(url); 
+       boost::intrusive_ptr<movie_definition> md ( create_library_movie(url) );
        if (md == NULL)
        {
            log_error("can't create movie_definition for %s\n", 
url.str().c_str());
            return;
        }
 
-       gnash::sprite_instance* extern_movie;
+       // TODO: stuff in an intrusive pointer ?
+       boost::intrusive_ptr<sprite_instance> extern_movie;
 
        if (target == root_movie)
        {
-               extern_movie = create_library_movie_inst(md);                   
+               extern_movie = create_library_movie_inst(md.get());
                if (extern_movie == NULL)
                {
                        log_error("can't create extern root sprite for %s\n", 
url.str().c_str());
@@ -160,7 +161,7 @@
 
                // It would be better if create_library_movie_inst() returned a 
movie_instance
                // directly !
-               gnash::movie_instance* mi = 
dynamic_cast<movie_instance*>(extern_movie);
+               gnash::movie_instance* mi = 
dynamic_cast<movie_instance*>(extern_movie.get());
                VM::get().getRoot().setRootMovie(mi);
                sprite_instance* m = extern_movie->get_root_movie();
 
@@ -175,7 +176,7 @@
                        return;
                }
       
-               save_extern_movie(extern_movie);
+               save_extern_movie(extern_movie.get());
       
                const character* tar = (const character*)target;
                const char* name = tar->get_name().c_str();
@@ -188,7 +189,7 @@
                uint16_t clip_depth = tar->get_clip_depth();
 
                character* parent = tar->get_parent();
-               sprite_instance* newsprite = extern_movie->get_root_movie();
+               boost::intrusive_ptr<sprite_instance> newsprite ( 
extern_movie->get_root_movie() );
 
                assert(parent);
                assert(newsprite);
@@ -199,7 +200,7 @@
                assert(parent_sprite);
        
            parent_sprite->replace_display_object(
-               newsprite,
+               newsprite.get(),
                name,
                depth,
                use_cxform,




reply via email to

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