gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/FreetypeGlyphsProvider.c...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/FreetypeGlyphsProvider.c...
Date: Mon, 26 May 2008 21:41:36 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/05/26 21:41:36

Modified files:
        .              : ChangeLog 
        server         : FreetypeGlyphsProvider.cpp 
                         FreetypeGlyphsProvider.h 

Log message:
        mutex-protect access to static Freetype lib.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6712&r2=1.6713
http://cvs.savannah.gnu.org/viewcvs/gnash/server/FreetypeGlyphsProvider.cpp?cvsroot=gnash&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/gnash/server/FreetypeGlyphsProvider.h?cvsroot=gnash&r1=1.9&r2=1.10

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6712
retrieving revision 1.6713
diff -u -b -r1.6712 -r1.6713
--- ChangeLog   26 May 2008 21:40:20 -0000      1.6712
+++ ChangeLog   26 May 2008 21:41:35 -0000      1.6713
@@ -1,5 +1,10 @@
 2008-05-26 Sandro Santilli <address@hidden>
 
+       * server/FreetypeGlyphsProvider.{cpp,h}: mutex-protect access to
+         static Freetype lib.
+
+2008-05-26 Sandro Santilli <address@hidden>
+
        * libmedia/ffmpeg/sound_handler_sdl.cpp: add some missing lockings.
        * server/asobj/NetStreamFfmpeg.cpp (seek): seek time is given in
          second, not milliseconds...

Index: server/FreetypeGlyphsProvider.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/FreetypeGlyphsProvider.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- server/FreetypeGlyphsProvider.cpp   29 Apr 2008 11:29:02 -0000      1.24
+++ server/FreetypeGlyphsProvider.cpp   26 May 2008 21:41:35 -0000      1.25
@@ -181,12 +181,17 @@
 
 };
 
-// static
-FT_Library FreetypeGlyphsProvider::m_lib;
+// statics
+FT_Library FreetypeGlyphsProvider::m_lib = 0;
+boost::mutex FreetypeGlyphsProvider::m_lib_mutex;
 
 // static private
 void FreetypeGlyphsProvider::init()
 {
+       boost::mutex::scoped_lock lock(m_lib_mutex);
+
+       if ( m_lib ) return; // nothing to do
+
        int     error = FT_Init_FreeType(&m_lib);
        if (error)
        {

Index: server/FreetypeGlyphsProvider.h
===================================================================
RCS file: /sources/gnash/gnash/server/FreetypeGlyphsProvider.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- server/FreetypeGlyphsProvider.h     17 Apr 2008 16:24:07 -0000      1.9
+++ server/FreetypeGlyphsProvider.h     26 May 2008 21:41:35 -0000      1.10
@@ -24,6 +24,7 @@
 
 #include <string>
 #include <memory> // for auto_ptr
+#include <boost/thread/mutex.hpp>
 
 #ifdef USE_FREETYPE 
 # include <ft2build.h>
@@ -151,6 +152,7 @@
        bool getFontFilename(const std::string& name, bool bold, bool italic,
                        std::string& filename);
 
+       /// Initialize the FreeType library if not done so yet
        static void init();
 
        static void close();
@@ -162,7 +164,12 @@
        std::auto_ptr<image::alpha> draw_bitmap(const FT_Bitmap& bitmap);
 
 
+       /// Mutex protecting FreeType library (for initialization basically)
+       static boost::mutex     m_lib_mutex;
+
+       /// FreeType library
        static FT_Library       m_lib;
+
        FT_Face m_face;
 
 #endif // USE_FREETYPE




reply via email to

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