aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/symbian/src
diff options
context:
space:
mode:
authorLars Persson2008-08-17 21:16:07 +0000
committerLars Persson2008-08-17 21:16:07 +0000
commit8d4461d2c9c377925f60dc5db27261996d982725 (patch)
treed3c1670c34950114024d09ade4c79154c5a1f88e /backends/platform/symbian/src
parent95aa2ce56f9e16b1ab76faebe4b4c25ed4625975 (diff)
downloadscummvm-rg350-8d4461d2c9c377925f60dc5db27261996d982725.tar.gz
scummvm-rg350-8d4461d2c9c377925f60dc5db27261996d982725.tar.bz2
scummvm-rg350-8d4461d2c9c377925f60dc5db27261996d982725.zip
Improved filehandling for securer and quicker way to get ref to file session
svn-id: r33978
Diffstat (limited to 'backends/platform/symbian/src')
-rw-r--r--backends/platform/symbian/src/SymbianOS.cpp13
-rw-r--r--backends/platform/symbian/src/SymbianOS.h2
2 files changed, 11 insertions, 4 deletions
diff --git a/backends/platform/symbian/src/SymbianOS.cpp b/backends/platform/symbian/src/SymbianOS.cpp
index 0ce44d1704..5da3493b33 100644
--- a/backends/platform/symbian/src/SymbianOS.cpp
+++ b/backends/platform/symbian/src/SymbianOS.cpp
@@ -161,6 +161,7 @@ OSystem_SDL_Symbian::zoneDesc OSystem_SDL_Symbian::_zones[TOTAL_ZONES] = {
{ 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 @@ void OSystem_SDL_Symbian::initZones() {
}
}
+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 @@ FILE* symbian_fopen(const char* name, const char* mode) {
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;
}
diff --git a/backends/platform/symbian/src/SymbianOS.h b/backends/platform/symbian/src/SymbianOS.h
index 68a6fb492f..07e6d158a4 100644
--- a/backends/platform/symbian/src/SymbianOS.h
+++ b/backends/platform/symbian/src/SymbianOS.h
@@ -33,6 +33,7 @@
#endif
#define TOTAL_ZONES 3
+class RFs;
class OSystem_SDL_Symbian : public OSystem_SDL {
public:
@@ -134,6 +135,7 @@ protected:
} zoneDesc;
static zoneDesc _zones[TOTAL_ZONES];
+ RFs* _RFs;
};
#endif