From f7bc85f6f5064c4dabaf5ef090d634234641eef2 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Sun, 8 Jan 2006 23:56:17 +0000 Subject: Transaction only decrements tx_data in send_msg() if return status is PJ_SUCCESS git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@115 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip/include/pjsip/sip_transaction.h | 9 +++++---- pjsip/src/pjsip/sip_transaction.c | 4 +++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pjsip/include/pjsip/sip_transaction.h b/pjsip/include/pjsip/sip_transaction.h index 4a7305ec..065b71c2 100644 --- a/pjsip/include/pjsip/sip_transaction.h +++ b/pjsip/include/pjsip/sip_transaction.h @@ -190,11 +190,12 @@ PJ_DECL(pj_status_t) pjsip_tsx_create_uas( pjsip_module *tsx_user, /** * Transmit message in tdata with this transaction. It is possible to - * pass NULL in tdata for UAC transaction, which in this case the last message - * or the request message which was specified in #pjsip_tsx_create_uac() - * will be sent. + * pass NULL in tdata for UAC transaction, which in this case the last + * message transmitted, or the request message which was specified when + * calling #pjsip_tsx_create_uac(), will be sent. * - * This function decrements the reference counter of the transmit buffer. + * This function decrements the reference counter of the transmit buffer + * only when it returns PJ_SUCCESS; * * @param tsx The transaction. * @param tdata The outgoing message. If NULL is specified, then the diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index d9824562..dd6c7641 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -1226,7 +1226,9 @@ PJ_DEF(pj_status_t) pjsip_tsx_send_msg( pjsip_transaction *tsx, /* Will always decrement tdata reference counter * (consistent with other send functions. */ - pjsip_tx_data_dec_ref(tdata); + if (status == PJ_SUCCESS) { + pjsip_tx_data_dec_ref(tdata); + } return status; } -- cgit v1.2.3