Drop temporary ISDN call lock before deleting a sent event: avoid stray pointer.

git-svn-id: http://yate.null.ro/svn/yate/trunk@3653 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
marian 2010-09-15 07:56:53 +00:00
parent 286f59e19c
commit 307f20c1a5
1 changed files with 3 additions and 0 deletions

View File

@ -789,6 +789,7 @@ bool ISDNQ931Call::sendEvent(SignallingEvent* event)
DDebug(q931(),DebugAll,"Call(%u,%u). sendEvent(%s) state=%s [%p]",
Q931_CALL_ID,event->name(),stateName(state()),this);
if (m_terminate || state() == CallAbort) {
mylock.drop();
delete event;
return false;
}
@ -832,6 +833,7 @@ bool ISDNQ931Call::sendEvent(SignallingEvent* event)
case CallAbort:
// Schedule destroy
m_terminate = m_destroy = true;
mylock.drop();
delete event;
return false;
default:
@ -852,6 +854,7 @@ bool ISDNQ931Call::sendEvent(SignallingEvent* event)
"Call(%u,%u). sendEvent not implemented for event '%s' [%p]",
Q931_CALL_ID,event->name(),this);
}
mylock.drop();
delete event;
return retVal;
}