diff -r 41f0cfe18c80 -r c734af59ce98 kernel/eka/memmodel/epoc/flexible/mmu/mrom.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mrom.cpp Tue Apr 27 18:02:57 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mrom.cpp Tue May 11 17:28:22 2010 +0300 @@ -530,15 +530,18 @@ TInt DRomMemoryManager::ReadPages(DMemoryObject* aMemory, TUint aIndex, TUint aCount, TPhysAddr* aPages, DPageReadRequest* aRequest) { - __NK_ASSERT_DEBUG(aRequest->CheckUse(aMemory,aIndex,aCount)); + __NK_ASSERT_DEBUG(aRequest->CheckUseContiguous(aMemory,aIndex,aCount)); + __ASSERT_CRITICAL; TLinAddr linAddr = aRequest->MapPages(aIndex,aCount,aPages); TInt r = KErrNone; + TThreadMessage message; const TInt readUnitShift = iDevice->iReadUnitShift; for(; aCount; ++aIndex, --aCount, linAddr+=KPageSize) { + START_PAGING_BENCHMARK; if(!iRomPageIndex) { @@ -548,7 +551,7 @@ // by readUnitShift. const TInt dataOffset = aIndex << KPageShift; START_PAGING_BENCHMARK; - r = iDevice->Read( const_cast(&aRequest->iMessage), + r = iDevice->Read( &message, linAddr, dataOffset >> readUnitShift, KPageSize >> readUnitShift, DPagingDevice::EDriveRomPaging); __NK_ASSERT_DEBUG(r!=KErrNoMemory); // not allowed to allocated memory, therefore can't fail with KErrNoMemory @@ -571,13 +574,12 @@ __NK_ASSERT_ALWAYS(romPageInfo->iPagingAttributes & SRomPageInfo::EPageable); // Read data for page... - TThreadMessage* msg = const_cast(&aRequest->iMessage); const TLinAddr buffer = aRequest->iBuffer; const TUint readStart = dataOffset >> readUnitShift; const TUint readSize = ((dataOffset + dataSize - 1) >> readUnitShift) - readStart + 1; __NK_ASSERT_DEBUG((readSize << readUnitShift) <= (DPageReadRequest::EMaxPages << KPageShift)); START_PAGING_BENCHMARK; - r = iDevice->Read(msg, buffer, readStart, readSize, DPagingDevice::EDriveRomPaging); + r = iDevice->Read(&message, buffer, readStart, readSize, DPagingDevice::EDriveRomPaging); __NK_ASSERT_DEBUG(r!=KErrNoMemory); // not allowed to allocated memory, therefore can't fail with KErrNoMemory END_PAGING_BENCHMARK(EPagingBmReadMedia); if(r==KErrNone)