[FFmpeg-devel] [PATCH v2 3/6] avutil/tree: Make av_tree_find2() non recursive

Michael Niedermayer michael at niedermayer.cc
Tue Apr 15 21:14:30 EEST 2025


Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavutil/tree.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavutil/tree.c b/libavutil/tree.c
index 455a447bf11..a4c090e6d04 100644
--- a/libavutil/tree.c
+++ b/libavutil/tree.c
@@ -57,12 +57,12 @@ static void tree_find_next(const AVTreeNode *t, const void *key,
 void *av_tree_find2(const AVTreeNode *t, const void *key,
                     int (*cmp)(const void *key, const void *b), void *next[4], int nextlen)
 {
-    if (t) {
+    while(t) {
         unsigned int v = cmp(key, t->elem);
         if (v) {
             if (next)
                 next[v >> 31] = t->elem;
-            return av_tree_find2(t->child[(v >> 31) ^ 1], key, cmp, next, nextlen);
+            t = t->child[(v >> 31) ^ 1];
         } else {
             if (next) {
                 tree_find_next(t->child[0], key, cmp, next, nextlen, 0);
-- 
2.49.0



More information about the ffmpeg-devel mailing list