userlibandfileserver/fileserver/sfile/sf_memory_client.cpp
changeset 201 43365a9b78a3
parent 90 947f0dc9f7a8
child 245 647ab20fee2e
--- a/userlibandfileserver/fileserver/sfile/sf_memory_client.cpp	Wed Jun 23 19:44:53 2010 +0300
+++ b/userlibandfileserver/fileserver/sfile/sf_memory_client.cpp	Tue Jul 06 15:50:07 2010 +0300
@@ -170,7 +170,8 @@
        	return addr;
        	}
     
-	// if we have used up reserved region, get new pages from reusable pool first
+    TBool touchedMore = EFalse;
+	// if we have touched beyond reserved region, get new pages from reusable pool first
     if (iReusablePagePool.Count())
     	{
 		addr = iReusablePagePool[0];
@@ -181,7 +182,7 @@
     else
     	{
     	addr = iBase + (iTouchedRegionFlag << iSegSizeInBytesLog2);
-    	iTouchedRegionFlag += aSegmentCount;
+    	touchedMore = ETrue;
 //       	__PRINT2(_L("!! GROW TOUCHED SEGS: addr=0x%x, touched=%d"), addr, iTouchedRegionFlag);
     	}
 	
@@ -197,6 +198,10 @@
 	if (r != KErrNone)
 		return NULL;
 
+	if (touchedMore)
+	    {
+	    iTouchedRegionFlag += aSegmentCount;
+	    }
 	return addr;
 	}