Fix leak when response for roster updates was not received
This commit is contained in:
parent
3d6b63335b
commit
6898933a1d
2 changed files with 9 additions and 6 deletions
|
@ -9,8 +9,8 @@ backend_port=10001
|
||||||
admin_username=admin
|
admin_username=admin
|
||||||
admin_password=test
|
admin_password=test
|
||||||
#idle_reconnect_time=10
|
#idle_reconnect_time=10
|
||||||
#cert= #patch to PKCS#12 certificate
|
cert=server.pfx #patch to PKCS#12 certificate
|
||||||
#cert_password= #password to that certificate if any
|
cert_password=test #password to that certificate if any
|
||||||
users_per_backend=10
|
users_per_backend=10
|
||||||
backend=../../backends/libpurple/spectrum_libpurple_backend
|
backend=../../backends/libpurple/spectrum_libpurple_backend
|
||||||
#backend=../../backends/libircclient-qt/spectrum_libircclient-qt_backend
|
#backend=../../backends/libircclient-qt/spectrum_libircclient-qt_backend
|
||||||
|
|
|
@ -64,11 +64,14 @@ RosterManager::~RosterManager() {
|
||||||
delete buddy;
|
delete buddy;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG4CXX_INFO(logger, "Removing " << m_requests.size() << " unresponded IQs");
|
if (m_requests.size() != 0) {
|
||||||
BOOST_FOREACH(Swift::SetRosterRequest::ref request, m_requests) {
|
LOG4CXX_INFO(logger, m_user->getJID().toString() << ": Removing " << m_requests.size() << " unresponded IQs");
|
||||||
request->onResponse.disconnect_all_slots();
|
BOOST_FOREACH(Swift::SetRosterRequest::ref request, m_requests) {
|
||||||
|
request->onResponse.disconnect_all_slots();
|
||||||
|
m_component->getIQRouter()->removeHandler(request);
|
||||||
|
}
|
||||||
|
m_requests.clear();
|
||||||
}
|
}
|
||||||
m_requests.clear();
|
|
||||||
|
|
||||||
boost::singleton_pool<boost::pool_allocator_tag, sizeof(unsigned int)>::release_memory();
|
boost::singleton_pool<boost::pool_allocator_tag, sizeof(unsigned int)>::release_memory();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue