kernel/eka/memmodel/epoc/flexible/mcodeseg.cpp
changeset 4 56f325a607ea
parent 0 a41df078684a
child 43 c1f20ce4abcf
equal deleted inserted replaced
2:4122176ea935 4:56f325a607ea
   225 		TLinAddr* expDir = (TLinAddr*)Kern::Alloc(exportDirSize);
   225 		TLinAddr* expDir = (TLinAddr*)Kern::Alloc(exportDirSize);
   226 		if(!expDir)
   226 		if(!expDir)
   227 			return KErrNoMemory;
   227 			return KErrNoMemory;
   228 		iCopyOfExportDir = expDir;
   228 		iCopyOfExportDir = expDir;
   229 		TLinAddr expDirLoad = iRamInfo.iExportDir-iRamInfo.iCodeRunAddr+iRamInfo.iCodeLoadAddr;
   229 		TLinAddr expDirLoad = iRamInfo.iExportDir-iRamInfo.iCodeRunAddr+iRamInfo.iCodeLoadAddr;
       
   230 		UNLOCK_USER_MEMORY();
   230 		memcpy(expDir,(TAny*)(expDirLoad-sizeof(TLinAddr)),exportDirSize);
   231 		memcpy(expDir,(TAny*)(expDirLoad-sizeof(TLinAddr)),exportDirSize);
       
   232 		LOCK_USER_MEMORY();
   231 		}
   233 		}
   232 
   234 
   233 	// unmap code from loading process...
   235 	// unmap code from loading process...
   234 	DMemModelProcess* pP=(DMemModelProcess*)TheCurrentThread->iOwningProcess;
   236 	DMemModelProcess* pP=(DMemModelProcess*)TheCurrentThread->iOwningProcess;
   235 	__ASSERT_ALWAYS(iCreator==pP, MM::Panic(MM::ECodeSegLoadedNotCreator));
   237 	__ASSERT_ALWAYS(iCreator==pP, MM::Panic(MM::ECodeSegLoadedNotCreator));