gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/impl.cpp server/impl.h s...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/impl.cpp server/impl.h s...
Date: Tue, 28 Nov 2006 12:30:43 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  06/11/28 12:30:43

Modified files:
        .              : ChangeLog 
        server         : impl.cpp impl.h 
        server/parser  : movie_def_impl.cpp movie_def_impl.h 
                         sprite_definition.cpp 
        server/swf     : TagLoadersTable.cpp TagLoadersTable.h 

Log message:
                * server/: impl.{cpp,h}, parser/movie_def_impl.{cpp,h},
                  parser/sprite_definition.cpp, swf/TagLoadersTable.{cpp,h}:
                  Another global removed: 's_tag_loaders', replaced
                  with TagLoadersTable turned into a singleton.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.1801&r2=1.1802
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.h?cvsroot=gnash&r1=1.39&r2=1.40
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/movie_def_impl.cpp?cvsroot=gnash&r1=1.47&r2=1.48
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/movie_def_impl.h?cvsroot=gnash&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/gnash/server/parser/sprite_definition.cpp?cvsroot=gnash&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/TagLoadersTable.cpp?cvsroot=gnash&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/TagLoadersTable.h?cvsroot=gnash&r1=1.5&r2=1.6

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.1801
retrieving revision 1.1802
diff -u -b -r1.1801 -r1.1802
--- ChangeLog   28 Nov 2006 12:20:16 -0000      1.1801
+++ ChangeLog   28 Nov 2006 12:30:42 -0000      1.1802
@@ -1,3 +1,10 @@
+2006-11-28 Sandro Santilli <address@hidden>
+
+       * server/: impl.{cpp,h}, parser/movie_def_impl.{cpp,h},
+         parser/sprite_definition.cpp, swf/TagLoadersTable.{cpp,h}:
+         Another global removed: 's_tag_loaders', replaced
+         with TagLoadersTable turned into a singleton.
+
 2006-11-28 Markus Gothe <address@hidden>
 
        * Applied a bunch of RiscOS-patches.

Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- server/impl.cpp     28 Nov 2006 12:02:04 -0000      1.82
+++ server/impl.cpp     28 Nov 2006 12:30:42 -0000      1.83
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: impl.cpp,v 1.82 2006/11/28 12:02:04 strk Exp $ */
+/* $Id: impl.cpp,v 1.83 2006/11/28 12:30:42 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -118,17 +118,16 @@
     s_use_cache_files = use_cache;
 }
 
-// Keep a table of loader functions for the different tag types.
-SWF::TagLoadersTable s_tag_loaders;
-
 // Associate the specified tag type with the given tag loader
 // function.
 void
 register_tag_loader(SWF::tag_type t, SWF::TagLoadersTable::loader_function lf)
 {
-       bool loader_registered = s_tag_loaders.register_loader(t, lf);
-       //if ( !loader_registered )
-       // log_error("Duplicate loader registered for tag %d", t);
+       using SWF::TagLoadersTable;
+
+       TagLoadersTable& table = TagLoadersTable::getInstance();
+
+       bool loader_registered = table.register_loader(t, lf);
        assert(loader_registered);
 }
 

Index: server/impl.h
===================================================================
RCS file: /sources/gnash/gnash/server/impl.h,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -b -r1.39 -r1.40
--- server/impl.h       21 Nov 2006 00:25:46 -0000      1.39
+++ server/impl.h       28 Nov 2006 12:30:42 -0000      1.40
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: impl.h,v 1.39 2006/11/21 00:25:46 strk Exp $ */
+/* $Id: impl.h,v 1.40 2006/11/28 12:30:42 strk Exp $ */
 
 #ifndef GNASH_IMPL_H
 #define GNASH_IMPL_H
@@ -115,16 +115,6 @@
 // standard tags are handled within gnash.  Host apps might want
 // to call this in order to handle special tag types.
 
-#if 0
-/// Signature of an SWF tag loader
-typedef void (*loader_function)(stream* input, int tag_type, movie_definition* 
m);
-
-/// These are the registered tag loaders
-extern hash<int, loader_function> s_tag_loaders;
-#else
-extern SWF::TagLoadersTable s_tag_loaders;
-#endif
-
 /// Register a tag loader for the given tag
 void   register_tag_loader(SWF::tag_type t,
                SWF::TagLoadersTable::loader_function lf);

Index: server/parser/movie_def_impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/movie_def_impl.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- server/parser/movie_def_impl.cpp    27 Nov 2006 15:57:51 -0000      1.47
+++ server/parser/movie_def_impl.cpp    28 Nov 2006 12:30:42 -0000      1.48
@@ -311,7 +311,8 @@
 movie_def_impl::movie_def_impl(create_bitmaps_flag cbf,
                create_font_shapes_flag cfs)
        :
-       _tag_loaders(s_tag_loaders), // FIXME: use a class-static 
TagLoadersTable for movie_def_impl
+       // FIXME: use a class-static TagLoadersTable for movie_def_impl
+       _tag_loaders(SWF::TagLoadersTable::getInstance()),
        m_create_bitmaps(cbf),
        m_create_font_shapes(cfs),
        m_frame_rate(30.0f),

Index: server/parser/movie_def_impl.h
===================================================================
RCS file: /sources/gnash/gnash/server/parser/movie_def_impl.h,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- server/parser/movie_def_impl.h      23 Nov 2006 20:14:13 -0000      1.22
+++ server/parser/movie_def_impl.h      28 Nov 2006 12:30:43 -0000      1.23
@@ -494,7 +494,7 @@
        /// This function uses a private TagLoadersTable
        /// to interpret specific tag types.
        /// Currently the TagLoadersTable in use is the
-       /// gnash::s_tag_loaders global variable
+       /// TagLoadersTable singleton.
        ///
        void read_all_swf();
 

Index: server/parser/sprite_definition.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/parser/sprite_definition.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- server/parser/sprite_definition.cpp 27 Nov 2006 21:54:10 -0000      1.5
+++ server/parser/sprite_definition.cpp 28 Nov 2006 12:30:43 -0000      1.6
@@ -173,7 +173,8 @@
 
 sprite_definition::sprite_definition(movie_definition* m, stream* in)
        :
-       _tag_loaders(s_tag_loaders),  // FIXME: use a class-static 
TagLoadersTable for sprite_definition
+       // FIXME: use a class-static TagLoadersTable for sprite_definition
+       _tag_loaders(SWF::TagLoadersTable::getInstance()), 
        m_movie_def(m),
        m_frame_count(0),
        m_loading_frame(0)

Index: server/swf/TagLoadersTable.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/TagLoadersTable.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- server/swf/TagLoadersTable.cpp      29 Oct 2006 18:34:16 -0000      1.2
+++ server/swf/TagLoadersTable.cpp      28 Nov 2006 12:30:43 -0000      1.3
@@ -56,6 +56,13 @@
        return true;
 }
 
+TagLoadersTable&
+TagLoadersTable::getInstance()
+{
+       static TagLoadersTable inst;
+       return inst;
+}
+
 } // namespace gnash::SWF
 } // namespace gnash
 

Index: server/swf/TagLoadersTable.h
===================================================================
RCS file: /sources/gnash/gnash/server/swf/TagLoadersTable.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- server/swf/TagLoadersTable.h        29 Oct 2006 18:34:16 -0000      1.5
+++ server/swf/TagLoadersTable.h        28 Nov 2006 12:30:43 -0000      1.6
@@ -51,12 +51,6 @@
        typedef void (*loader_function)(
                stream* input, tag_type type, movie_definition* m);
 
-       /// Default constructor
-       TagLoadersTable()
-               :
-               _tag_loaders()
-       {}
-
        /// \brief
        /// Get a pointer to the loader_function for the
        /// specified SWF::tag_type.
@@ -73,6 +67,10 @@
        ///
        bool register_loader(tag_type t, loader_function lf);
        
+       /// \brief
+       /// Return a reference to the singleton instance
+       /// of this class.
+       static TagLoadersTable& getInstance();
 
 private:
 
@@ -81,6 +79,25 @@
 
        container _tag_loaders;
 
+       /// Use getInstance()
+       TagLoadersTable()
+               :
+               _tag_loaders()
+       {}
+
+       ~TagLoadersTable() {}
+
+       TagLoadersTable(const TagLoadersTable& tl)
+               :
+               _tag_loaders(tl._tag_loaders)
+       {}
+
+       TagLoadersTable& operator=(const TagLoadersTable& tl)
+       {
+               _tag_loaders = tl._tag_loaders;
+               return *this;
+       }
+
 };
 
 } // namespace gnash::SWF




reply via email to

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