fixed small mem leak: playlist is closed in session destructors to free playlist items

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@425 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Stefan Sayer 19 years ago
parent ff6571b33c
commit aee44c98cd

@ -296,6 +296,9 @@ ConferenceDialog::ConferenceDialog(const string& conf_id,
ConferenceDialog::~ConferenceDialog()
{
DBG("ConferenceDialog::~ConferenceDialog()\n");
// clean playlist items
play_list.close(false);
}
void ConferenceDialog::onStart()

@ -106,6 +106,7 @@ PinAuthConferenceDialog::PinAuthConferenceDialog(AmPromptCollection& prompts)
PinAuthConferenceDialog::~PinAuthConferenceDialog()
{
play_list.close(false);
prompts.cleanup((long)this);
}
@ -125,7 +126,7 @@ void PinAuthConferenceDialog::connectConference(const string& room) {
channel.reset(AmConferenceStatus::getChannel(conf_id,getLocalTag()));
// clear the playlist
play_list.close();
play_list.close(false);
// add the channel to our playlist
play_list.addToPlaylist(new AmPlaylistItem(channel.get(),

@ -65,6 +65,8 @@ SimpleConferenceDialog::SimpleConferenceDialog()
SimpleConferenceDialog::~SimpleConferenceDialog()
{
// clean playlist items
play_list.close(false);
}
void SimpleConferenceDialog::onSessionStart(const AmSipRequest& req)

@ -43,6 +43,8 @@ MyJukeboxDialog::MyJukeboxDialog()
MyJukeboxDialog::~MyJukeboxDialog()
{
// clean playlist items
playlist.close(false);
}
void MyJukeboxDialog::onSessionStart(const AmSipRequest& req)

@ -583,6 +583,8 @@ IvrDialog::~IvrDialog()
{
DBG("----------- IvrDialog::~IvrDialog() ------------- \n");
playlist.close(false);
PYLOCK;
Py_XDECREF(py_mod);
Py_XDECREF(py_dlg);

@ -38,6 +38,7 @@ PySemsDialog::PySemsDialog(AmDynInvoke* user_timer)
PySemsDialog::~PySemsDialog()
{
playlist.close(false);
}

@ -520,6 +520,7 @@ AnswerMachineDialog::AnswerMachineDialog(const string& email,
AnswerMachineDialog::~AnswerMachineDialog()
{
playlist.close(false);
}
void AnswerMachineDialog::process(AmEvent* event)

@ -414,6 +414,7 @@ WebConferenceDialog::WebConferenceDialog(AmPromptCollection& prompts,
WebConferenceDialog::~WebConferenceDialog()
{
prompts.cleanup((long)this);
play_list.close(false);
if (InConference == state) {
factory->updateStatus(conf_id,
getLocalTag(),

Loading…
Cancel
Save