diff --git a/libavutil/tree.c b/libavutil/tree.c index 07814536852e887df85c89fd4aa48f8cdebe3054..85ef629b9877cdce0fb2aef18f94ba42e43bffdd 100644 --- a/libavutil/tree.c +++ b/libavutil/tree.c @@ -137,10 +137,12 @@ void av_tree_destroy(AVTreeNode *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){ 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