[Scummvm-cvs-logs] SF.net SVN: scummvm:[33978] scummvm/trunk/backends/platform/symbian/src

anotherguest at users.sourceforge.net anotherguest at users.sourceforge.net
Sun Aug 17 23:16:08 CEST 2008


Revision: 33978
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33978&view=rev
Author:   anotherguest
Date:     2008-08-17 21:16:07 +0000 (Sun, 17 Aug 2008)

Log Message:
-----------
Improved filehandling for securer and quicker way to get ref to file session

Modified Paths:
--------------
    scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp
    scummvm/trunk/backends/platform/symbian/src/SymbianOS.h

Modified: scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp
===================================================================
--- scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp	2008-08-17 21:02:40 UTC (rev 33977)
+++ scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp	2008-08-17 21:16:07 UTC (rev 33978)
@@ -161,6 +161,7 @@
         { 150, 145, 170, 55 }
 };
 OSystem_SDL_Symbian::OSystem_SDL_Symbian() :_channels(0),_stereo_mix_buffer(0) {
+	_RFs = &CEikonEnv::Static()->FsSession();
 }
 
 void OSystem_SDL_Symbian::initBackend() {
@@ -488,6 +489,10 @@
 	}
 }
 
+RFs& OSystem_SDL_Symbian::FsSession() {
+	return *_RFs;
+}
+
 FILE*	symbian_fopen(const char* name, const char* mode) {
 	TSymbianFileEntry* fileEntry = new TSymbianFileEntry;
 	fileEntry->iInputPos = KErrNotFound;
@@ -516,22 +521,22 @@
 
 		switch(mode[0]) {
 		case 'a':
-			if (fileEntry->iFileHandle.Open(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) {
-				if (fileEntry->iFileHandle.Create(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) {
+			if (fileEntry->iFileHandle.Open(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
+				if (fileEntry->iFileHandle.Create(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
 					delete fileEntry;
 					fileEntry = NULL;
 				}
 			}
 			break;
 		case 'r':
-			if (fileEntry->iFileHandle.Open(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) {
+			if (fileEntry->iFileHandle.Open(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
 				delete fileEntry;
 				fileEntry = NULL;
 			}
 			break;
 
 		case 'w':
-			if (fileEntry->iFileHandle.Replace(CEikonEnv::Static()->FsSession(), tempFileName, fileMode) != KErrNone) {
+			if (fileEntry->iFileHandle.Replace(static_cast<OSystem_SDL_Symbian*>(g_system)->FsSession(), tempFileName, fileMode) != KErrNone) {
 				delete fileEntry;
 				fileEntry = NULL;
 			}

Modified: scummvm/trunk/backends/platform/symbian/src/SymbianOS.h
===================================================================
--- scummvm/trunk/backends/platform/symbian/src/SymbianOS.h	2008-08-17 21:02:40 UTC (rev 33977)
+++ scummvm/trunk/backends/platform/symbian/src/SymbianOS.h	2008-08-17 21:16:07 UTC (rev 33978)
@@ -33,6 +33,7 @@
 #endif
 
 #define TOTAL_ZONES 3
+class RFs;
 
 class OSystem_SDL_Symbian : public OSystem_SDL {
 public:
@@ -134,6 +135,7 @@
 	} zoneDesc;
 
 	static zoneDesc _zones[TOTAL_ZONES];
+	RFs* _RFs;
 };
 
 #endif


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