[转载]On RArray AppendL() memory leaks

src:http://tamss60.tamoggemon.com/2009/11/26/on-rarray-appendl-memory-leaks/comment-page-1

 

Working with Symbian isn’t always easy. Especially when it comes to hunting memory leaks – yours truly did that for about an hour while finishing work on version 2 of LocaNote Lite.

One of the weirdest leaks I saw in this session concerns the code below – the leak occurred in the bold lines:

HBufC* alpha=itemArray->MdcaPoint(i).Alloc();
TPtrC beta=alpha->Des();
anArray->Append(beta);
garbageArray->Append(alpha);

Huh? Leaks while appending something? Weird.

The solution for the problem is outlined in the code segment below:
void CLocaNoteListView::SortList()
{
CTextListBoxModel* model = LstFiles()->Model();
CDesCArray* itemArray = static_cast ( model->ItemTextArray() );
RArray *anArray;
RArray *garbageArray=new RArray(itemArray->Count());
TInt i;
anArray=new RArray(itemArray->Count());

...

anArray->Reset();
garbageArray->Reset();

delete anArray;
delete garbageArray;
}

So: when using RArrays, don’t forget to call Reset before blasting them to oblivion…

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值