]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Isolate the frame returned from ast_translate().
authorRussell Bryant <russell@russellbryant.com>
Wed, 21 Oct 2009 16:39:20 +0000 (16:39 +0000)
committerRussell Bryant <russell@russellbryant.com>
Wed, 21 Oct 2009 16:39:20 +0000 (16:39 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@225169 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/translate.c

index a928470bf359f0fb44d3881599d2dca37b794e6c..9ee2f664f5da973d608d67b60f2ff38ef04b9012 100644 (file)
@@ -301,7 +301,7 @@ struct ast_trans_pvt *ast_translator_build_path(int dest, int source)
 struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f, int consume)
 {
        struct ast_trans_pvt *p = path;
-       struct ast_frame *out = f;
+       struct ast_frame *out = f, *ret;
        struct timeval delivery;
        int has_timing_info;
        long ts;
@@ -370,7 +370,11 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f,
        /* Invalidate prediction if we're entering a silence period */
        if (out->frametype == AST_FRAME_CNG)
                path->nextout = ast_tv(0, 0);
-       return out;
+
+       ret = ast_frisolate(out);
+       ast_frfree(out);
+
+       return ret;
 }
 
 /*! \brief compute the cost of a single translation step */