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

Vitor Sessak vitor1001
Wed Mar 3 18:31:48 CET 2010


Michael Niedermayer wrote:
> On Tue, Mar 02, 2010 at 11:26:26PM +0100, Vitor Sessak wrote:
>> Michael Niedermayer wrote:
>>> On Tue, Mar 02, 2010 at 10:29:47PM +0100, Vitor Sessak wrote:
>>>> Michael Niedermayer wrote:
>>>>> On Tue, Mar 02, 2010 at 08:51:41PM +0100, Vitor Sessak wrote:
>>>>>> Michael Niedermayer wrote:
>>>>>>> On Tue, Mar 02, 2010 at 08:37:38PM +0100, Vitor Sessak wrote:
>>>>>>>> Michael Niedermayer wrote:
>>>>>>> [...]
>>>>>>>> Ok, thanks. Attached patch fixes the function and use it to plug the 
>>>>>>>> memleak.
>>>>>>> attachment fell off the email during transport it seems
>>>>>> Just to keep the tradition going ;)
>>>>>>
>>>>>> -Vitor
>>>>>>  libavformat/nut.c    |   16 ++++++++++++++++
>>>>>>  libavformat/nut.h    |    1 +
>>>>>>  libavformat/nutdec.c |    1 +
>>>>>>  libavformat/nutenc.c |    1 +
>>>>>>  libavutil/avutil.h   |    2 +-
>>>>>>  libavutil/tree.c     |    8 +++-----
>>>>>>  libavutil/tree.h     |   13 +++++++++++++
>>>>>>  7 files changed, 36 insertions(+), 6 deletions(-)
>>>>>> 9060fad44f3129d750f0e334cd777283dc5c85ae  nuttree3.diff
>>>>>> Index: libavutil/tree.c
>>>>>> ===================================================================
>>>>>> --- libavutil/tree.c	(revision 22135)
>>>>>> +++ libavutil/tree.c	(working copy)
>>>>>> @@ -135,16 +135,14 @@
>>>>>>      }
>>>>>>  }
>>>>>>  -#if 0
>>>>>> -void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void 
>>>>>> *opaque, void *elem), int (*enu)(void *opaque, void *elem)){
>>>>>> +void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void 
>>>>>> *opaque, const void *elem), int (*enu)(void *opaque, void *elem)){
>>>>>>      if(t){
>>>>>>          int v= cmp ? cmp(opaque, t->elem) : 0;
>>>>>> -        if(v>=0) av_tree_enumerate(t->child[0], opaque, cmp, enu);
>>>>>> +        if(v==0 || v>=0) av_tree_enumerate(t->child[0], opaque, cmp, 
>>>>>> enu);
>>>>>>          if(v==0) enu(opaque, t->elem);
>>>>>> -        if(v<=0) av_tree_enumerate(t->child[1], opaque, cmp, enu);
>>>>>> +        if(v==0 || v<=0) av_tree_enumerate(t->child[1], opaque, cmp, 
>>>>>> enu);
>>>>> does your compile need this?
>>>> No, it was my brain that needed this, I was reading ">" instead of ">=" 
>>>> (and that was also why I wasn't understanding this code) :p
>>>>
>>>>>> Index: libavformat/nut.c
>>>>>> ===================================================================
>>>>>> --- libavformat/nut.c	(revision 22109)
>>>>>> +++ libavformat/nut.c	(working copy)
>>>>>> @@ -69,6 +69,22 @@
>>>>>>      }
>>>>>>  }
>>>>>>  +static int cmp_always_0(void *a, const void *b)
>>>>>> +{
>>>>>> +    return 0;
>>>>>> +}
>>>>>> +
>>>>>> +static void enu_free(void *opaque, void *elem)
>>>>>> +{
>>>>>> +    av_free(elem);
>>>>>> +}
>>>>>> +
>>>>>> +void ff_nut_free_sp(NUTContext *nut)
>>>>>> +{
>>>>>> +    av_tree_enumerate(nut->syncpoints, NULL, cmp_always_0, enu_free);
>>>>>> +    av_tree_destroy(nut->syncpoints);
>>>>>> +}
>>>>> NULL should work fine instead of cmp_always_0
>>>> Sure, new patch attached.
>>> attached, yes, new, no
>> Today is not my day :(
>>
>> -Vitor
> 
>>  libavformat/nut.c    |   11 +++++++++++
>>  libavformat/nut.h    |    1 +
>>  libavformat/nutdec.c |    1 +
>>  libavformat/nutenc.c |    1 +
>>  libavutil/avutil.h   |    2 +-
>>  libavutil/tree.c     |    2 --
>>  libavutil/tree.h     |   13 +++++++++++++
>>  7 files changed, 28 insertions(+), 3 deletions(-)
>> 36c0786265abe676f2acdb6410c1c74ee28b421e  nuttree6.diff
> 
> looks ok

Committed with Stefano's nits.

-Vitor



More information about the ffmpeg-cvslog mailing list