[Scummvm-cvs-logs] SF.net SVN: scummvm: [27885] scummex/branches/gsoc2007-gameresbrowser

zbychs at users.sourceforge.net zbychs at users.sourceforge.net
Tue Jul 3 20:17:43 CEST 2007


Revision: 27885
          http://scummvm.svn.sourceforge.net/scummvm/?rev=27885&view=rev
Author:   zbychs
Date:     2007-07-03 11:17:43 -0700 (Tue, 03 Jul 2007)

Log Message:
-----------
Should now compile under Linux.

Modified Paths:
--------------
    scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.h
    scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp
    scummex/branches/gsoc2007-gameresbrowser/src/core/guid.h
    scummex/branches/gsoc2007-gameresbrowser/src/plugins/FileTypeRecognizer.cpp
    scummex/branches/gsoc2007-gameresbrowser/vc8/core/core.vcproj

Added Paths:
-----------
    scummex/branches/gsoc2007-gameresbrowser/src/core/safe_static.h

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.cpp	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.cpp	2007-07-03 18:17:43 UTC (rev 27885)
@@ -13,9 +13,9 @@
 /////////////////////////////////////////////////////////////////////////////
 // FileTypes
 
-BGUID binaryFileType("CoreFileTypes", "Binary File", 1);
+SAFE_STATIC(binaryFileType, BGUID, ("CoreFileTypes", "Binary File", 1) )
 
-BGUID bmpFileType("CoreFileTypes", "Windows Bitmap File (BMP)", 1);
+SAFE_STATIC(bmpFileType, BGUID, ("CoreFileTypes", "Windows Bitmap File (BMP)", 1) )
 
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.h	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/CoreFileTypes.h	2007-07-03 18:17:43 UTC (rev 27885)
@@ -6,15 +6,17 @@
 
 #include "guid.h"
 
+#include "safe_static.h"
+
 namespace Browser {
 
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
 // FileTypes
 
-extern BGUID binaryFileType;
+SAFE_STATIC_DECL(binaryFileType, BGUID)
 
-extern BGUID bmpFileType;
+SAFE_STATIC_DECL(bmpFileType, BGUID)
 
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/guid.cpp	2007-07-03 18:17:43 UTC (rev 27885)
@@ -20,7 +20,10 @@
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
 
-BGUID BGUID::Unknown("Unknown Facility", "Unknown GUID", 1);
+/*static*/ const BGUID& BGUID::Unknown() {
+    static BGUID unknown("Unknown Facility", "Unknown GUID", 1);
+    return unknown;
+}
 
 BGUID::BGUID(std::string _facility, std::string _identifier, int _version)
     : facility(_facility), identifier(_identifier), version(_version) {}

Modified: scummex/branches/gsoc2007-gameresbrowser/src/core/guid.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/guid.h	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/guid.h	2007-07-03 18:17:43 UTC (rev 27885)
@@ -24,7 +24,7 @@
 /////////////////////////////////////////////////////////////////////////////
 
 struct BGUID {
-    static BGUID Unknown;
+    static const BGUID& Unknown();
 
     std::string facility;
     std::string identifier;

Added: scummex/branches/gsoc2007-gameresbrowser/src/core/safe_static.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/core/safe_static.h	                        (rev 0)
+++ scummex/branches/gsoc2007-gameresbrowser/src/core/safe_static.h	2007-07-03 18:17:43 UTC (rev 27885)
@@ -0,0 +1,24 @@
+/////////////////////////////////////////////////////////////////////////////
+// safe_static.h
+
+#ifndef _SAFE_STATIC_H_
+#define _SAFE_STATIC_H_
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+#define EMPTY_INITIALIZER
+
+#define SAFE_STATIC_DECL(name, type) \
+    const type& name();
+
+#define SAFE_STATIC(name, type, initialisation) \
+    const type& name() { \
+        static type safe initialisation; \
+        return safe; \
+    }
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+#endif // _SAFE_STATIC_H_


Property changes on: scummex/branches/gsoc2007-gameresbrowser/src/core/safe_static.h
___________________________________________________________________
Name: svn:mime-type
   + text/plain
Name: svn:eol-style
   + native

Modified: scummex/branches/gsoc2007-gameresbrowser/src/plugins/FileTypeRecognizer.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/plugins/FileTypeRecognizer.cpp	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/src/plugins/FileTypeRecognizer.cpp	2007-07-03 18:17:43 UTC (rev 27885)
@@ -8,6 +8,8 @@
 #include "VirtualNode.h"
 #include "ochain.h"
 
+#include "safe_static.h"
+
 #include "debugmem.h"
 
 namespace Browser {
@@ -16,16 +18,16 @@
 /////////////////////////////////////////////////////////////////////////////
 // Static fields
 
-RecognizedFileType RecognizedFileType::NotRecognized(NO_MATCH, BGUID::Unknown);
+RecognizedFileType RecognizedFileType::NotRecognized(NO_MATCH, BGUID::Unknown());
 
-guid_list _empty_guid_list;
-ResolvedFileTypeParsers ResolvedFileTypeParsers::NoParsers(NO_PARSERS, _empty_guid_list);
+SAFE_STATIC(_empty_guid_list, guid_list, EMPTY_INITIALIZER)
+ResolvedFileTypeParsers ResolvedFileTypeParsers::NoParsers(NO_PARSERS, _empty_guid_list());
 
 /////////////////////////////////////////////////////////////////////////////
 /////////////////////////////////////////////////////////////////////////////
 
 RecognizedFileType BinaryFileTypeRecognizer::recognize(VirtualFile* file) {
-    return RecognizedFileType(POOR_MATCH, binaryFileType);
+    return RecognizedFileType(POOR_MATCH, binaryFileType());
 }
 
 /////////////////////////////////////////////////////////////////////////////
@@ -33,7 +35,7 @@
 
 ResolvedFileTypeParsers BinaryFileTypeParserResolver::resolve(const BGUID& fileType) {
     guid_list parsers;
-    if(fileType != binaryFileType)
+    if(fileType != binaryFileType())
         return ResolvedFileTypeParsers::NoParsers;
 
     //FIXME: this is temporary
@@ -80,7 +82,7 @@
     if ( b != 'B' || m != 'M' )
         return RecognizedFileType::NotRecognized;
 
-    return RecognizedFileType(IDEAL_MATCH, bmpFileType);
+    return RecognizedFileType(IDEAL_MATCH, bmpFileType());
 }
 
 /////////////////////////////////////////////////////////////////////////////
@@ -88,7 +90,7 @@
 
 ResolvedFileTypeParsers BMPFileTypeParserResolver::resolve(const BGUID& fileType) {
     guid_list parsers;
-    if(fileType != bmpFileType)
+    if(fileType != bmpFileType())
         return ResolvedFileTypeParsers(NO_PARSERS, parsers);
 
     //FIXME: this is temporary

Modified: scummex/branches/gsoc2007-gameresbrowser/vc8/core/core.vcproj
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/vc8/core/core.vcproj	2007-07-03 17:56:50 UTC (rev 27884)
+++ scummex/branches/gsoc2007-gameresbrowser/vc8/core/core.vcproj	2007-07-03 18:17:43 UTC (rev 27885)
@@ -252,6 +252,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\src\core\safe_static.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\src\core\stdafx.h"
 				>
 			</File>


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list