diff -r 29ddb8a72f0e -r 9f1c3fea0f87 graphicscomposition/openwfsupport/src/surfacestream.cpp --- a/graphicscomposition/openwfsupport/src/surfacestream.cpp Tue Jul 06 15:45:57 2010 +0300 +++ b/graphicscomposition/openwfsupport/src/surfacestream.cpp Wed Aug 18 11:05:09 2010 +0300 @@ -670,15 +670,18 @@ if (iBufferChunk.Handle() == 0) { RChunk threadChunk; - User::LeaveIfError(GetSingletonL().SurfaceManager().MapSurface(iSurfaceId, threadChunk)); - CleanupClosePushL(threadChunk); - + RSurfaceManager sm; + sm.Open(); + TInt err = sm.MapSurface(iSurfaceId, threadChunk); + sm.Close(); + CleanupClosePushL(threadChunk); + RChunk duplicateChunk; duplicateChunk.SetHandle(threadChunk.Handle()); - User::LeaveIfError(duplicateChunk.Duplicate(RThread(), EOwnerProcess)); - + User::LeaveIfError(duplicateChunk.Duplicate(RThread(), EOwnerProcess)); + iBufferChunk.SetHandle(duplicateChunk.Handle()); - CleanupStack::PopAndDestroy(&threadChunk); + CleanupStack::PopAndDestroy(&threadChunk); } break; } @@ -1367,10 +1370,10 @@ serialNumber = param.serialNumber; - // we take, initially in consideration "availble" even if we might not have received a consumed request status + // we take, initially in consideration "available" even if we might not have received a consumed request status eventsToProcess = 0; - // we try to figure out which are the vents we have to process and to get hold of their position + // we try to figure out which are the events we have to process and to get hold of their position // in the observers array, in order to avoid traversing it again TInt idx = iCallBacks.Count(); //we will intend to mark the visited events, as an optimisation @@ -2134,3 +2137,8 @@ iNewFlip = EFlippedTargetNormal; } } + +TInt CSurfaceStream::GetChunkHandle() + { + return iBufferChunk.Handle(); + }