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

anotherguest at users.sourceforge.net anotherguest at users.sourceforge.net
Tue Jul 22 20:52:13 CEST 2008


Revision: 33210
          http://scummvm.svn.sourceforge.net/scummvm/?rev=33210&view=rev
Author:   anotherguest
Date:     2008-07-22 18:52:13 +0000 (Tue, 22 Jul 2008)

Log Message:
-----------
Fixed seek problem when cached data is used.

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

Modified: scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp
===================================================================
--- scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp	2008-07-22 17:39:30 UTC (rev 33209)
+++ scummvm/trunk/backends/platform/symbian/src/SymbianOS.cpp	2008-07-22 18:52:13 UTC (rev 33210)
@@ -627,6 +627,7 @@
 
 	TSeek seekMode = ESeekStart;
 	TInt pos = offset;
+	TSymbianFileEntry* entry = ((TSymbianFileEntry*)(handle));
 
 	switch(whence) {
 	case SEEK_SET:
@@ -634,6 +635,9 @@
 		break;
 	case SEEK_CUR:
 		seekMode = ESeekCurrent;
+		if(entry->iInputPos != KErrNotFound) {
+			pos+=(entry->iInputPos - entry->iInputBufferLen);
+		}
 		break;
 	case SEEK_END:
 		seekMode = ESeekEnd;
@@ -641,9 +645,9 @@
 
 	}
 	
-	((TSymbianFileEntry*)(handle))->iInputPos = KErrNotFound;
+	entry->iInputPos = KErrNotFound;
 
-	return ((TSymbianFileEntry*)(handle))->iFileHandle.Seek(seekMode, pos);
+	return entry->iFileHandle.Seek(seekMode, pos);
 }
 
 void symbian_clearerr(FILE* /*handle*/) {


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