diff -r 9707f1c07383 -r ae0addfe117e mmlibs/mmfw/src/Plugin/StdSourceAndSink/fileaccess.cpp --- a/mmlibs/mmfw/src/Plugin/StdSourceAndSink/fileaccess.cpp Fri Jul 09 12:37:42 2010 +0100 +++ b/mmlibs/mmfw/src/Plugin/StdSourceAndSink/fileaccess.cpp Fri Jul 09 12:53:09 2010 +0100 @@ -14,6 +14,7 @@ // #include +#include #include #include #include @@ -147,9 +148,10 @@ CContentFile::~CContentFile() { delete iData; - - if (iLegacyFileOpen) - iLegacyFile.Close(); + + iLegacyFile.Close(); + iFile64.Close(); //For defect EASA-84ZC6J + delete iFilePath; } @@ -269,12 +271,35 @@ RFile& CContentFile::FileL() { if (!iLegacyFileOpen) - { - User::LeaveIfError(iLegacyFile.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters)); - iLegacyFileOpen = ETrue; + {//For defect EASA-84ZC6J + TInt error = iLegacyFile.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters); + if ( error == KErrTooBig ) + { + User::LeaveIfError(iFile64.Open(*iSession, *iFilePath, EFileRead | EFileStream | EFileShareReadersOrWriters)); + iLegacyFileOpen = ETrue; + return iFile64; + } + + else if (error == KErrNone) + { + iLegacyFileOpen = ETrue; + return iLegacyFile; + } + + else + { + User::Leave(error); + } } - return iLegacyFile; - } + if(iLegacyFile.SubSessionHandle()) + { + return iLegacyFile; + } + else + { + return iFile64; + } +} TInt CContentFile::Data(CData*& aData) {