--- a/kernel/eka/memmodel/epoc/flexible/mmu/mcodepaging.cpp Thu Aug 19 11:14:22 2010 +0300
+++ b/kernel/eka/memmodel/epoc/flexible/mmu/mcodepaging.cpp Tue Aug 31 16:34:26 2010 +0300
@@ -298,31 +298,17 @@
(TAny*)info.iCodeLocalDrive,
(TAny*)&message);
- if(bufferStart<0)
- {
- r = bufferStart; // return error
- __NK_ASSERT_DEBUG(0);
+ r = ThePager.EmbedErrorContext(EPagingErrorContextCodeRead, bufferStart);
+ if(r<0)
break;
- }
TLinAddr data = aRequest->Buffer() + bufferStart;
r = Decompress(info.iCompressionType, linAddr, decompressedSize, data, dataSize);
- if(r>=0)
- {
- if(r!=decompressedSize)
- {
- __KTRACE_OPT(KPANIC, Kern::Printf("DCodePagedMemoryManager::ReadPage: error decompressing page at %08x + %x: %d", dataOffset, dataSize, r));
- __NK_ASSERT_DEBUG(0);
- r = KErrCorrupt;
- }
- else
- r = KErrNone;
- }
- else
- {
- __NK_ASSERT_DEBUG(0);
- }
-
+ if (r >= 0)
+ r = (r == decompressedSize) ? KErrNone : KErrCorrupt;
+ if(r != KErrNone)
+ __KTRACE_OPT(KPANIC, Kern::Printf("DCodePagedMemoryManager::ReadPage: error decompressing page at %08x + %x: %d", dataOffset, dataSize, r));
+ r = ThePager.EmbedErrorContext(EPagingErrorContextCodeDecompress, r);
if(r!=KErrNone)
break;