< Previous by Date Date Index Next by Date >
  Thread Index Next in Thread >

[reSIProcate] DUM Dialog.cxx Erro Code


 Hello:

Dialog::~Dialog()
{
   DebugLog ( <<"Dialog::~Dialog() ");

   mDestroying = true;

   while (!mClientSubscriptions.empty())
   {
      delete *mClientSubscriptions.begin();
   }
   while (!mServerSubscriptions.empty())
   {
      delete *mServerSubscriptions.begin();
   }

   delete mInviteSession;
   mDialogSet.mDialogs.erase(this->getId());
   delete mAppDialog;
   if(!mReUseDialogSet)
   {
      mDialogSet.possiblyDie();
   }      
}

in this function;

   while (!mClientSubscriptions.empty())
   {
      delete *mClientSubscriptions.begin();
   }
   while (!mServerSubscriptions.empty())
   {
      delete *mServerSubscriptions.begin();
   }

must change to :
   while (!mClientSubscriptions.empty())
   {
      delete *mClientSubscriptions.begin();
          mClientSubscriptions.pop_front();
   }
   while (!mServerSubscriptions.empty())
   {
      delete *mServerSubscriptions.begin();
      mServerSubscriptions.pop_front();
   }

otherwise it should be a dead loop!
                                
--------------
fancy_xiao
2007-02-06