[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