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@gramner.com> Reviewed-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
This commit is contained in:
		
							parent
							
								
									94f333f9dc
								
							
						
					
					
						commit
						7c8fcbbde3
					
				| @ -288,7 +288,7 @@ typedef struct Glyph { | |||||||
|     int bitmap_top; |     int bitmap_top; | ||||||
| } Glyph; | } 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; |     const Glyph *a = key, *bb = b; | ||||||
|     int64_t diff = (int64_t)a->code - (int64_t)bb->code; |     int64_t diff = (int64_t)a->code - (int64_t)bb->code; | ||||||
|  | |||||||
| @ -65,9 +65,9 @@ typedef struct Context { | |||||||
|     int read_ahead_limit; |     int read_ahead_limit; | ||||||
| } Context; | } 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) | static int cache_open(URLContext *h, const char *arg, int flags, AVDictionary **options) | ||||||
|  | |||||||
| @ -237,14 +237,16 @@ int64_t ff_lsb2full(StreamContext *stream, int64_t lsb) | |||||||
|     return ((lsb - delta) & mask) + delta; |     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) | 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->pos      = pos; | ||||||
|     sp->back_ptr = back_ptr; |     sp->back_ptr = back_ptr; | ||||||
|     sp->ts       = ts; |     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) { |     if (node) { | ||||||
|         av_free(sp); |         av_free(sp); | ||||||
|         av_free(node); |         av_free(node); | ||||||
|  | |||||||
| @ -132,8 +132,8 @@ typedef struct Dispositions { | |||||||
| 
 | 
 | ||||||
| void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val); | void ff_nut_reset_ts(NUTContext *nut, AVRational time_base, int64_t val); | ||||||
| int64_t ff_lsb2full(StreamContext *stream, int64_t lsb); | 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_pos_cmp(const void *a, const void *b); | ||||||
| int ff_nut_sp_pts_cmp(const Syncpoint *a, const Syncpoint *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); | int ff_nut_add_sp(NUTContext *nut, int64_t pos, int64_t back_ptr, int64_t ts); | ||||||
| void ff_nut_free_sp(NUTContext *nut); | void ff_nut_free_sp(NUTContext *nut); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1271,7 +1271,7 @@ static int read_seek(AVFormatContext *s, int stream_index, | |||||||
|         pos2 = st->index_entries[index].pos; |         pos2 = st->index_entries[index].pos; | ||||||
|         ts   = st->index_entries[index].timestamp; |         ts   = st->index_entries[index].timestamp; | ||||||
|     } else { |     } 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); |                      (void **) next_node); | ||||||
|         av_log(s, AV_LOG_DEBUG, "%"PRIu64"-%"PRIu64" %"PRId64"-%"PRId64"\n", |         av_log(s, AV_LOG_DEBUG, "%"PRIu64"-%"PRIu64" %"PRId64"-%"PRId64"\n", | ||||||
|                next_node[0]->pos, next_node[1]->pos, next_node[0]->ts, |                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)) { |         if (!(flags & AVSEEK_FLAG_BACKWARD)) { | ||||||
|             dummy.pos    = pos + 16; |             dummy.pos    = pos + 16; | ||||||
|             next_node[1] = &nopts_sp; |             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); |                          (void **) next_node); | ||||||
|             pos2 = ff_gen_search(s, -2, dummy.pos, next_node[0]->pos, |             pos2 = ff_gen_search(s, -2, dummy.pos, next_node[0]->pos, | ||||||
|                                  next_node[1]->pos, next_node[1]->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
 |             // FIXME dir but I think it does not matter
 | ||||||
|         } |         } | ||||||
|         dummy.pos = pos; |         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); |                           NULL); | ||||||
| 
 | 
 | ||||||
|         av_assert0(sp); |         av_assert0(sp); | ||||||
|  | |||||||
| @ -587,7 +587,7 @@ static int write_index(NUTContext *nut, AVIOContext *bc) { | |||||||
|     ff_put_v(bc, nut->sp_count); |     ff_put_v(bc, nut->sp_count); | ||||||
| 
 | 
 | ||||||
|     for (i=0; i<nut->sp_count; i++) { |     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)); |         ff_put_v(bc, (next_node[1]->pos >> 4) - (dummy.pos>>4)); | ||||||
|         dummy.pos = next_node[1]->pos; |         dummy.pos = next_node[1]->pos; | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -37,7 +37,7 @@ struct AVTreeNode *av_tree_node_alloc(void) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void *av_tree_find(const AVTreeNode *t, void *key, | 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) { |     if (t) { | ||||||
|         unsigned int v = cmp(key, t->elem); |         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, | 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; |     AVTreeNode *t = *tp; | ||||||
|     if (t) { |     if (t) { | ||||||
|  | |||||||
| @ -62,7 +62,7 @@ struct AVTreeNode *av_tree_node_alloc(void); | |||||||
|  *         exists in the tree. |  *         exists in the tree. | ||||||
|  */ |  */ | ||||||
| void *av_tree_find(const struct AVTreeNode *root, void *key, | 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. |  * 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. |  *         should make no assumptions that it's one or the other in the code. | ||||||
|  */ |  */ | ||||||
| void *av_tree_insert(struct AVTreeNode **rootp, void *key, | 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); |                      struct AVTreeNode **next); | ||||||
| 
 | 
 | ||||||
| void av_tree_destroy(struct AVTreeNode *t); | void av_tree_destroy(struct AVTreeNode *t); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user