Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1280271
  • 博文数量: 79
  • 博客积分: 1959
  • 博客等级: 上尉
  • 技术积分: 2719
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-19 12:07
个人简介

樽中酒不空

文章分类

全部博文(79)

文章存档

2024年(3)

2020年(4)

2019年(1)

2017年(2)

2016年(2)

2015年(7)

2014年(11)

2013年(13)

2012年(18)

2011年(2)

2010年(16)

分类: C/C++

2012-12-13 14:52:46

使用vc2008调用gloox测试example,发现有内存泄露。跟踪发现出在Client里面:

void Client::init()
  {
    m_rosterManager = new RosterManager( this );
    m_disco->setIdentity( "client", "bot" );
    registerStanzaExtension( new ResourceBind( 0 ) );
    registerStanzaExtension( new Capabilities() );
    m_presenceExtensions.push_back( new Capabilities( m_disco ) );//这一行引起的
  }
最后跟踪,的确没看到在哪里释放它。
手动在析构函数里加上:
Client::~Client()
  {
 StanzaExtensionList::const_iterator it = m_presenceExtensions.begin();
 for( ; it != m_presenceExtensions.end(); ++it )
 {
 delete (*it);
 }
 m_presenceExtensions.clear();
 delete m_rosterManager;
 delete m_auth;
  }

内存泄露消失了。
不过,以gloox这么庞大的用户群体,如果问题这么明显,肯定早就发现了。只能推测可能由系统,SDK或其他开发环境引起的(当前环境是XP+vc2008,不过系统中安装了众多其他开发工具)。gloox已经好久没有更新了,可能以后还会碰到,暂记备用。
阅读(3386) | 评论(7) | 转发(0) |
给主人留下些什么吧!~~

sxcong2018-12-26 13:26:22

zhuyongjin:我 如 何 接 收 到 服 务 器 返 回 给 我 的 确 认 呢? 谢  谢。

通过回调函数收到服务器的回复

回复 | 举报

zhuyongjin2018-11-14 16:37:17

分开发才行,不然说有违禁词。谢谢

zhuyongjin2018-11-14 16:36:48

625800798

zhuyongjin2018-11-14 16:36:42

Q Q

zhuyongjin2018-11-14 16:36:12

我 如 何 接 收 到 服 务 器 返 回 给 我 的 确 认 呢? 谢  谢。