diff -r 26645d81f48d -r cc28652e0254 persistentstorage/store/USTOR/UT_COLL.CPP --- a/persistentstorage/store/USTOR/UT_COLL.CPP Tue Aug 31 16:57:14 2010 +0300 +++ b/persistentstorage/store/USTOR/UT_COLL.CPP Wed Sep 01 12:39:58 2010 +0100 @@ -903,7 +903,7 @@ } return ::ExtentL(Host(),iMark,Coord().Base(),aStream); } - + /* relocate a stream into [iFree, aExtent) During compaction, for each string which is to be moved from position A1 to B1, the sequence of operations is: @@ -942,14 +942,15 @@ when writing to the file. */ void CPermanentStoreCollector::RelocateStreamL(const CPermanentStoreCollector::TEntry& aReloc, TInt aExtent) + { if (Coord().Accessed()) // must have exclusive access to relocate the stream __LEAVE(KErrInUse); // TInt end=RelocateL(aReloc.entry.ref,aReloc.len,aReloc.entry.handle == KHandleTocBase ? EFrameDescriptive16 : EFrameData16, aExtent); - //Step 1, 4,.... + //Step 1 Coord().RelocateL(aReloc.entry.handle, iFree); - // Step 2 & 3, 5 & 6,... + // Step 2 & 3 iCoordGen=Coord().Generation(); // changed by relocation iFree = end; }