Fixed bug: delay xml element release when decoding a jingle jabber event until transport and/or media are retrieved from it.

git-svn-id: http://voip.null.ro/svn/yate@1983 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
marian 2008-05-14 08:03:05 +00:00
parent b8f67148f3
commit 0d3d4aa509
1 changed files with 4 additions and 1 deletions

View File

@ -705,11 +705,14 @@ JGEvent* JGSession::decodeJingle(JBEvent* jbev)
media = jingle->findFirstChild(XMLElement::Description);
if (media && !media->hasAttribute("xmlns",s_ns[XMPPNamespace::JingleAudio]))
break;
event = new JGEvent(act,this,jbev->releaseXML());
// Don't set the event's element yet: this would invalidate the 'jingle' variable
event = new JGEvent(act,this,0);
XMLElement* t = trans ? trans->findFirstChild(XMLElement::Candidate) : 0;
for (; t; t = trans->findNextChild(t,XMLElement::Candidate))
event->m_transport.append(new JGTransport(t));
event->m_audio.fromXML(media);
event->m_id = jbev->id();
event->m_element = jbev->releaseXML();
break;
}
if (trans != jingle)