aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-15 23:35:29 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-15 23:35:29 +0000
commitf3a4d7c8f40c6f7300addfc66cf87ac9b9da037c (patch)
tree837844fe54af013f31e85dc2de244fb2d49e1927
parentb61a98675cbcec3ca5222907e1e08dce882a4d6e (diff)
Clean up something I did for ABI compatability in 1.4
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98945 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--include/asterisk/translate.h9
-rw-r--r--main/translate.c5
2 files changed, 4 insertions, 10 deletions
diff --git a/include/asterisk/translate.h b/include/asterisk/translate.h
index b1f615f7f..97f10283f 100644
--- a/include/asterisk/translate.h
+++ b/include/asterisk/translate.h
@@ -138,13 +138,7 @@ struct ast_trans_pvt {
struct ast_translator *t;
struct ast_frame f; /*!< used in frameout */
int samples; /*!< samples available in outbuf */
- /*!
- * \brief actual space used in outbuf
- *
- * Also, for the sake of ABI compatability, a magic value of -1 in this
- * field means that the pvt has been requested to be destroyed, but is
- * pending destruction until ast_translate_frame_freed() gets called.
- */
+ /*! \brief actual space used in outbuf */
int datalen;
void *pvt; /*!< more private data, if any */
char *outbuf; /*!< the useful portion of the buffer */
@@ -152,6 +146,7 @@ struct ast_trans_pvt {
struct ast_trans_pvt *next; /*!< next in translator chain */
struct timeval nextin;
struct timeval nextout;
+ unsigned int destroy:1;
};
/*! \brief generic frameout function */
diff --git a/main/translate.c b/main/translate.c
index 8bdaaf082..1af88ecfb 100644
--- a/main/translate.c
+++ b/main/translate.c
@@ -139,8 +139,7 @@ static void destroy(struct ast_trans_pvt *pvt)
* When ast_frfree() gets called on that frame, this ast_trans_pvt
* will get destroyed, too. */
- /* Set the magic hint that this has been requested to be destroyed. */
- pvt->datalen = -1;
+ pvt->destroy = 1;
return;
}
@@ -898,7 +897,7 @@ void ast_translate_frame_freed(struct ast_frame *fr)
pvt = (struct ast_trans_pvt *) (((char *) fr) - offsetof(struct ast_trans_pvt, f));
- if (pvt->datalen != -1)
+ if (!pvt->destroy)
return;
destroy(pvt);