[FFmpeg-cvslog] r22119 - in trunk/libavutil: tree.c tree.h

Michael Niedermayer michaelni
Mon Mar 1 01:27:09 CET 2010


On Sun, Feb 28, 2010 at 09:48:42PM +0100, vitor wrote:
> Author: vitor
> Date: Sun Feb 28 21:48:42 2010
> New Revision: 22119
> 
> Log:
> Implement av_tree_destroy_free_elem() to destroy a tree and free all the 
> values stored on it.
> 
> Modified:
>    trunk/libavutil/tree.c
>    trunk/libavutil/tree.h
> 
> Modified: trunk/libavutil/tree.c
> ==============================================================================
> --- trunk/libavutil/tree.c	Sun Feb 28 20:58:26 2010	(r22118)
> +++ trunk/libavutil/tree.c	Sun Feb 28 21:48:42 2010	(r22119)
> @@ -135,6 +135,15 @@ void av_tree_destroy(AVTreeNode *t){
>      }
>  }
>  
> +void av_tree_destroy_free_elem(AVTreeNode *t){
> +    if(t){
> +        av_tree_destroy_free_elem(t->child[0]);
> +        av_tree_destroy_free_elem(t->child[1]);
> +        av_free(t->elem);
> +        av_free(t);
> +    }
> +}
> +
>  #if 0
>  void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem)){
>      if(t){
> 
> Modified: trunk/libavutil/tree.h
> ==============================================================================
> --- trunk/libavutil/tree.h	Sun Feb 28 20:58:26 2010	(r22118)
> +++ trunk/libavutil/tree.h	Sun Feb 28 21:48:42 2010	(r22119)
> @@ -78,5 +78,6 @@ void *av_tree_find(const struct AVTreeNo
>   */
>  void *av_tree_insert(struct AVTreeNode **rootp, void *key, int (*cmp)(void *key, const void *b), struct AVTreeNode **next);
>  void av_tree_destroy(struct AVTreeNode *t);
> +void av_tree_destroy_free_elem(struct AVTreeNode *t);

argh, ive missed this part of your patch

minor api bump & doxy missing and its the wrong way to do it
you dont know at all if avfree() is correct and sufficient to free the
opaque elements.
av_tree_enumerate() is likely the correct way to free

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Democracy is the form of government in which you can choose your dictator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20100301/80105a8d/attachment.pgp>



More information about the ffmpeg-cvslog mailing list