diff -r f9bb0fca356a -r 0fd27995241b javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp --- a/javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp Fri Apr 30 10:40:48 2010 +0300 +++ b/javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp Tue May 11 16:07:20 2010 +0300 @@ -166,13 +166,16 @@ TRAPD(error, { HBufC* smsData = convertToDes(aData,aMsgType,aLength); + CleanupStack::PushL(smsData); std::auto_ptr smsAddress(stringToDes(aHostAddress)); // The sms message takes ownership of the buffer CSmsBuffer* buffer = CSmsBuffer::NewL(); + CleanupStack::PushL(buffer); delete mSendMessage; mSendMessage = 0; RFs fileServer; mSendMessage = CSmsMessage::NewL(fileServer,CSmsPDU::ESmsSubmit,buffer); + CleanupStack::Pop(buffer); if (smsAddress->Length()> 0) { // set the destination address @@ -212,7 +215,7 @@ numberOfSegments = (int)mSendMessage->NumMessagePDUsL(); LOG2(EWMA, EInfo,"SMS :number of segments %d data length %d", numberOfSegments, aLength); - delete smsData; + CleanupStack::PopAndDestroy(smsData); }); return (error == KErrNone)? numberOfSegments : error; } @@ -234,6 +237,7 @@ TInt nonConvertibleCharacters; CCnvCharacterSetConverter* cConverter = CCnvCharacterSetConverter::NewL(); + CleanupStack::PushL(cConverter); CCnvCharacterSetConverter::TAvailability cnvAvailable = cConverter->PrepareToConvertToOrFromL( KCharacterSetIdentifierSms7Bit, aFs); @@ -266,8 +270,7 @@ } (isGSM7Convertible)?msgEncoding = TSmsDataCodingScheme::ESmsAlphabet7Bit :msgEncoding = TSmsDataCodingScheme::ESmsAlphabetUCS2; - delete cConverter; - cConverter = 0; + CleanupStack::PopAndDestroy(cConverter); } else {