kernel/eka/memmodel/epoc/flexible/mmu/mcodepaging.cpp
branchRCL_3
changeset 43 c1f20ce4abcf
parent 42 a179b74831c9
child 44 3e88ff8f41d5
equal deleted inserted replaced
42:a179b74831c9 43:c1f20ce4abcf
   296 												device.iReadUnitShift,
   296 												device.iReadUnitShift,
   297 												ReadFunc,
   297 												ReadFunc,
   298 												(TAny*)info.iCodeLocalDrive,
   298 												(TAny*)info.iCodeLocalDrive,
   299 												(TAny*)&message);
   299 												(TAny*)&message);
   300 
   300 
   301 		if(bufferStart<0)
   301 		r = ThePager.EmbedErrorContext(EPagingErrorContextCodeRead, bufferStart); 
   302 			{
   302 		if(r<0)
   303 			r = bufferStart; // return error
       
   304 			__NK_ASSERT_DEBUG(0);
       
   305 			break;
   303 			break;
   306 			}
       
   307 
   304 
   308 		TLinAddr data = aRequest->Buffer() + bufferStart;
   305 		TLinAddr data = aRequest->Buffer() + bufferStart;
   309 		r = Decompress(info.iCompressionType, linAddr, decompressedSize, data, dataSize);
   306 		r = Decompress(info.iCompressionType, linAddr, decompressedSize, data, dataSize);
   310 		if(r>=0)
   307 		if (r >= 0)
   311 			{
   308 			r = (r == decompressedSize) ? KErrNone : KErrCorrupt;
   312 			if(r!=decompressedSize)
   309 		if(r != KErrNone)
   313 				{
   310 			__KTRACE_OPT(KPANIC, Kern::Printf("DCodePagedMemoryManager::ReadPage: error decompressing page at %08x + %x: %d", dataOffset, dataSize, r));
   314 				__KTRACE_OPT(KPANIC, Kern::Printf("DCodePagedMemoryManager::ReadPage: error decompressing page at %08x + %x: %d", dataOffset, dataSize, r));
   311 		r = ThePager.EmbedErrorContext(EPagingErrorContextCodeDecompress, r); 			
   315 				__NK_ASSERT_DEBUG(0);
       
   316 				r = KErrCorrupt;
       
   317 				}
       
   318 			else
       
   319 				r = KErrNone;
       
   320 			}
       
   321 		else
       
   322 			{
       
   323 			__NK_ASSERT_DEBUG(0);
       
   324 			}
       
   325 
       
   326 		if(r!=KErrNone)
   312 		if(r!=KErrNone)
   327 			break;
   313 			break;
   328 
   314 
   329 		if(decompressedSize<KPageSize)
   315 		if(decompressedSize<KPageSize)
   330 			memset((TAny*)(linAddr+decompressedSize), KPageSize-decompressedSize, 0x03);
   316 			memset((TAny*)(linAddr+decompressedSize), KPageSize-decompressedSize, 0x03);