diff -r fcaf4606ba4e -r 5c1df44f2eed devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp --- a/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp Thu Oct 07 23:44:30 2010 +0100 +++ b/devsound/a3fdevsound/src/mmfdevsoundproxy/mmfdevsoundcallbackhandler.cpp Wed Oct 13 12:45:32 2010 +0100 @@ -288,22 +288,20 @@ // the chunk has been closed by the server. No action should be taken. TBool requestChunk = iDataBuffer==NULL; // if we have no buffer, tell server we need a chunk handle TInt handle = iDevSoundProxy->BufferToBeFilledData(requestChunk, iSetPckg); - if(handle >= KErrNone) + User::LeaveIfError(handle); + + if ( iSetPckg().iChunkOp == EOpen ) { - if ( iSetPckg().iChunkOp == EOpen ) - { - AssignDataBufferToChunkL(handle); - } - else - { - UpdateDataBufferL(); - } - iDataBuffer->SetStatus(EAvailable); - - // Let the MMF fill the buffer with data - - iDevSoundObserver.BufferToBeFilled(iDataBuffer); + AssignDataBufferToChunkL(handle); } + else + { + UpdateDataBufferL(); + } + iDataBuffer->SetStatus(EAvailable); + + // Let the MMF fill the buffer with data + iDevSoundObserver.BufferToBeFilled(iDataBuffer); SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBFCompleteL - Exit")); } @@ -320,16 +318,18 @@ // any error is assumed to be due to a pending RecordError(), so the error here is ignored - the RecordError() call will ensure the client remains lively // the chunk has been closed by the server. No action should be taken. TInt handle = iDevSoundProxy->BufferToBeEmptiedData(iSetPckg); - if(handle >= KErrNone) + User::LeaveIfError(handle); + + if ( iSetPckg().iChunkOp == EOpen ) { - if ( iSetPckg().iChunkOp == EOpen ) - { - AssignDataBufferToChunkL(handle); - } - iDataBuffer->SetStatus(EFull); - iDataBuffer->Data().SetLength(iSetPckg().iRequestSize); - iDevSoundObserver.BufferToBeEmptied(iDataBuffer); + AssignDataBufferToChunkL(handle); } + + __ASSERT_ALWAYS(iDataBuffer, User::Leave(KErrGeneral)); //iDataBuffer should never be empty here + iDataBuffer->SetStatus(EFull); + iDataBuffer->Data().SetLength(iSetPckg().iRequestSize); + iDevSoundObserver.BufferToBeEmptied(iDataBuffer); + SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::DoBTBECompleteL - Exit")); } @@ -416,7 +416,7 @@ void CMsgQueueHandler::UpdateDataBufferL() { SYMBIAN_DEBPRN0(_L("CMsgQueueHandler[0x%x]::UpdateDataBufferL - Enter")); - ASSERT(iDataBuffer); // to get here, we should have a data buffer + __ASSERT_ALWAYS(iDataBuffer, User::Leave(KErrGeneral)); // to get here, we should have a data buffer iDataBuffer->SetPtr(iChunkDataPtr); iDataBuffer->SetRequestSizeL(iSetPckg().iRequestSize); iDataBuffer->SetLastBuffer(EFalse);