[FFmpeg-cvslog] avutil/tree: add additional const qualifier to the comparator

Ganesh Ajjanagadde git at videolan.org
Sun Oct 25 02:40:15 CEST 2015


ffmpeg | branch: master | Ganesh Ajjanagadde <gajjanagadde at gmail.com> | Sat Oct 24 17:53:21 2015 -0400| [7c8fcbbde3a299096974f9061c8b5be0e526f4c2] | committer: Ganesh Ajjanagadde

avutil/tree: add additional const qualifier to the comparator

libc's qsort comparator has a const qualifier on both arguments. This
adds a missing const qualifier to exactly match the comparator API.

Existing usages of av_tree_find, av_tree_insert are appropriately
modified: type signature changes of the comparators, and removal of
unnecessary void * casts of function pointers.

Reviewed-by: Henrik Gramner <henrik at gramner.com>
Reviewed-by: wm4 <nfxjfg at googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7c8fcbbde3a299096974f9061c8b5be0e526f4c2
---

 libavfilter/vf_drawtext.c |    2 +-
 libavformat/cache.c       |    4 ++--
 libavformat/nut.c         |   12 +++++++-----
 libavformat/nut.h         |    4 ++--
 libavformat/nutdec.c      |    6 +++---
 libavformat/nutenc.c      |    2 +-
 libavutil/tree.c          |    4 ++--
 libavutil/tree.h          |    4 ++--
 8 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 5c4676e..fc77be4 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -288,7 +288,7 @@ typedef struct Glyph {
     int bitmap_top;
 } Glyph;
 
-static int glyph_cmp(void *key, const void *b)
+static int glyph_cmp(const void *key, const void *b)
 {
     const Glyph *a = key, *bb = b;
     int64_t diff = (int64_t)a->code - (int64_t)bb->code;
diff --git a/libavformat/cache.c b/libavformat/cache.c
index d3d12bb..a762aa9 100644
--- a/libavformat/cache.c
+++ b/libavformat/cache.c
@@ -65,9 +65,9 @@ typedef struct Context {
     int read_ahead_limit;
 } Context;
 
-static int cmp(void *key, const void *node)
+static int cmp(const void *key, const void *node)
 {
-    return (*(int64_t *) key) - ((const CacheEntry *) node)->logical_pos;
+    return (*(const int64_t *) key) - ((const CacheEntry *) node)->logical_pos;
 }
 
 static int cache_open(URLContext *h, const char *arg, int flags, AVDictionary **options)
diff --git a/libavformat/nut.c b/libavformat/nut.c
index c6fdb0b..41e51df 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -237,14 +237,16 @@ int64_t ff_lsb2full(StreamContext *stream, int64_t lsb)
     return ((lsb - delta) & mask) + delta;
 }
 
-int ff_nut_sp_pos_cmp(const Syncpoint *a, const Syncpoint *b)
+int ff_nut_sp_pos_cmp(const void *a, const void *b)
 {
-    return ((a->pos - b->pos) >> 32) - ((b->pos - a->pos) >> 32);
+    const Syncpoint *va = a, *vb = b;
+    return ((va->pos - vb->pos) >> 32) - ((vb->pos - va->pos) >> 32);
 }
 
-int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *b)
+int ff_nut_sp_pts_cmp(const void *a, const void *b)
 {
-    return ((a->ts - b->ts) >> 32) - ((b->ts - a->ts) >> 32);
+    const Syncpoint *va = a, *vb = b;
+    return ((va->ts - vb->ts) >> 32) - ((vb->ts - va->ts) >> 32);
 }
 
 int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts)
@@ -263,7 +265,7 @@ int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts)
     sp->pos      = pos;
     sp->back_ptr = back_ptr;
     sp->ts       = ts;
-    av_tree_insert(&nut->syncpoints, sp, (void *) ff_nut_sp_pos_cmp, &node);
+    av_tree_insert(&nut->syncpoints, sp, ff_nut_sp_pos_cmp, &node);
     if (node) {
         av_free(sp);
         av_free(node);
diff --git a/libavformat/nut.h b/libavformat/nut.h
index 45aa55c..a4409ee 100644
--- a/libavformat/nut.h
+++ b/libavformat/nut.h
@@ -132,8 +132,8 @@ typedef struct Dispositions {
 
 void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val);
 int64_t ff_lsb2full(StreamContext *stream, int64_t lsb);
-int ff_nut_sp_pos_cmp(const Syncpoint *a, const Syncpoint *b);
-int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *b);
+int ff_nut_sp_pos_cmp(const void *a, const void *b);
+int ff_nut_sp_pts_cmp(const void *a, const void *b);
 int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts);
 void ff_nut_free_sp(NUTContext *nut);
 
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index 63b0cd2..deceb03 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -1271,7 +1271,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
         pos2 = st->index_entries[index].pos;
         ts   = st->index_entries[index].timestamp;
     } else {
-        av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pts_cmp,
+        av_tree_find(nut->syncpoints, &dummy, ff_nut_sp_pts_cmp,
                      (void **) next_node);
         av_log(s, AV_LOG_DEBUG, "%"PRIu64"-%"PRIu64" %"PRId64"-%"PRId64"\n",
                next_node[0]->pos, next_node[1]->pos, next_node[0]->ts,
@@ -1286,7 +1286,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
         if (!(flags & AVSEEK_FLAG_BACKWARD)) {
             dummy.pos    = pos + 16;
             next_node[1] = &nopts_sp;
-            av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pos_cmp,
+            av_tree_find(nut->syncpoints, &dummy, ff_nut_sp_pos_cmp,
                          (void **) next_node);
             pos2 = ff_gen_search(s, -2, dummy.pos, next_node[0]->pos,
                                  next_node[1]->pos, next_node[1]->pos,
@@ -1297,7 +1297,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
             // FIXME dir but I think it does not matter
         }
         dummy.pos = pos;
-        sp = av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pos_cmp,
+        sp = av_tree_find(nut->syncpoints, &dummy, ff_nut_sp_pos_cmp,
                           NULL);
 
         av_assert0(sp);
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index 49d62bf..cad31f8 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -587,7 +587,7 @@ static int write_index(NUTContext *nut, AVIOContext *bc) {
     ff_put_v(bc, nut->sp_count);
 
     for (i=0; i<nut->sp_count; i++) {
-        av_tree_find(nut->syncpoints, &dummy, (void *) ff_nut_sp_pos_cmp, (void**)next_node);
+        av_tree_find(nut->syncpoints, &dummy, ff_nut_sp_pos_cmp, (void**)next_node);
         ff_put_v(bc, (next_node[1]->pos >> 4) - (dummy.pos>>4));
         dummy.pos = next_node[1]->pos;
     }
diff --git a/libavutil/tree.c b/libavutil/tree.c
index d0b67ef..0a69ea9 100644
--- a/libavutil/tree.c
+++ b/libavutil/tree.c
@@ -37,7 +37,7 @@ struct AVTreeNode *av_tree_node_alloc(void)
 }
 
 void *av_tree_find(const AVTreeNode *t, void *key,
-                   int (*cmp)(void *key, const void *b), void *next[2])
+                   int (*cmp)(const void *key, const void *b), void *next[2])
 {
     if (t) {
         unsigned int v = cmp(key, t->elem);
@@ -57,7 +57,7 @@ void *av_tree_find(const AVTreeNode *t, void *key,
 }
 
 void *av_tree_insert(AVTreeNode **tp, void *key,
-                     int (*cmp)(void *key, const void *b), AVTreeNode **next)
+                     int (*cmp)(const void *key, const void *b), AVTreeNode **next)
 {
     AVTreeNode *t = *tp;
     if (t) {
diff --git a/libavutil/tree.h b/libavutil/tree.h
index f04f02d..337a44c 100644
--- a/libavutil/tree.h
+++ b/libavutil/tree.h
@@ -62,7 +62,7 @@ struct AVTreeNode *av_tree_node_alloc(void);
  *         exists in the tree.
  */
 void *av_tree_find(const struct AVTreeNode *root, void *key,
-                   int (*cmp)(void *key, const void *b), void *next[2]);
+                   int (*cmp)(const void *key, const void *b), void *next[2]);
 
 /**
  * Insert or remove an element.
@@ -109,7 +109,7 @@ void *av_tree_find(const struct AVTreeNode *root, void *key,
  *         should make no assumptions that it's one or the other in the code.
  */
 void *av_tree_insert(struct AVTreeNode **rootp, void *key,
-                     int (*cmp)(void *key, const void *b),
+                     int (*cmp)(const void *key, const void *b),
                      struct AVTreeNode **next);
 
 void av_tree_destroy(struct AVTreeNode *t);



More information about the ffmpeg-cvslog mailing list