From 12fd72aa18d101937911931b01de753a7293d827 Mon Sep 17 00:00:00 2001 From: michael Date: Sat, 14 Nov 2009 11:19:08 +0000 Subject: [PATCH] Make sure av_tree_enumerate() enumerates left->right. git-svn-id: file:///var/local/repositories/ffmpeg/trunk@20535 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b --- libavutil/tree.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libavutil/tree.c b/libavutil/tree.c index cce1d3109..078145368 100644 --- a/libavutil/tree.c +++ b/libavutil/tree.c @@ -136,10 +136,11 @@ void av_tree_destroy(AVTreeNode *t){ } #if 0 -void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*f)(void *opaque, void *elem)){ - int v= f(opaque, t->elem); - if(v>=0) av_tree_enumerate(t->child[0], opaque, f); - if(v<=0) av_tree_enumerate(t->child[1], opaque, f); +void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem)){ + int v= cmp ? cmp(opaque, t->elem) : 0; + if(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); } #endif -- 2.11.4.GIT