AddressBook问题,调用IADDRBOOK_EnumRecInit,内存泄漏

airfei10 2009-12-01 04:36:50
大家好,我在Brew程序中通过创建实例,初始化,释放的顺序,访问地址簿。
if (ISHELL_CreateInstance(pAT->pIShell, AEECLSID_ADDRBOOK, (void**)&pAT->pIContatAddrBook) != SUCCESS)
{
return FALSE;
}

if(IADDRBOOK_EnumRecInit(pAT->pIContatAddrBook, AEE_ADDR_CAT_NONE, AEE_ADDRFIELD_NONE, NULL, 0) != AEE_SUCCESS)
{
return FALSE;
}

IADDRBOOK_Release(pAT->pIContatAddrBook);
pAT->pIContatAddrBook = NULL;

然后在Brew应用退出后,ISHELL_CloseApplet(pMe->pIShell, FALSE);
发生了内存泄漏。

BPOINT Type 1, Node 0x06A4223C addressb *OEMOS.c 738 3 1 0 9072
12/01/09 14:47:04.547441 ------ App Heap Info ------ *AEEHeap.c 1265 3 1 0 9073
12/01/09 14:47:04.547716 480 - addressbook (L) *AEEHeap.c

这个480就是泄漏的内存大小,然后我地址簿中有120条记录

每条估计占4字节 ,120 × 4 =480

大家可以真机调试下,有什么解决方案吗?是Brew SDK的BUG吗?
谢谢大家,还望解答。。。。
...全文
1804 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 airfei10 的回复:]
那就是说IADDRBOOK是必须和OEM配合的吧。

还有,我在使用IADDRBOOK_CreateRec的时候,成功创建的数据,在手机自带的电话簿中编辑后,不能保存,报保存失败。这个也是和OEM有关是吧。
[/Quote]

是的,注意相关的头文件
ly5657 2009-12-15
  • 打赏
  • 举报
回复
直接去检查下你们的OEM_Addrbook.c的文件,看看RELEASE函数有没有问题
  • 打赏
  • 举报
回复
看一下OEM的相应头文件,有没有特殊的要求
yuly888 2009-12-02
  • 打赏
  • 举报
回复
IADDRBOOK 这个API是需要OEM做portting的,如果OEM的代码有问题,在IADDRBOOK_Release(pAT->pIContatAddrBook)的时候,没有把数据内存释放掉,那么,必定会引起内存泄露了。
airfei10 2009-12-02
  • 打赏
  • 举报
回复
那就是说IADDRBOOK是必须和OEM配合的吧。

还有,我在使用IADDRBOOK_CreateRec的时候,成功创建的数据,在手机自带的电话簿中编辑后,不能保存,报保存失败。这个也是和OEM有关是吧。
airfei10 2009-12-01
  • 打赏
  • 举报
回复
没有,真机在Brew Logger中调试的时候是过了这句的。
donghan12yue 2009-12-01
  • 打赏
  • 举报
回复
if(IADDRBOOK_EnumRecInit(pAT->pIContatAddrBook, AEE_ADDR_CAT_NONE, AEE_ADDRFIELD_NONE, NULL, 0) != AEE_SUCCESS)
{
return FALSE;
}
调试下是不是在这里退出了

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧