mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
media: create sort_picture_table function via macro
This needs a slight change to the macro, because here we sort by value type. Yes, from a C-programming point of view this is horrible, however a decent compiler should just inline everything and not pass around value types. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
db24f16686
commit
ebdb3e3c30
3 changed files with 4 additions and 3 deletions
|
@ -31,7 +31,7 @@ static MAKE_GROW_TABLE(picture_table, struct picture, pictures)
|
|||
static MAKE_GET_INSERTION_INDEX(picture_table, struct picture, pictures, picture_less_than)
|
||||
MAKE_ADD_TO(picture_table, struct picture, pictures)
|
||||
static MAKE_REMOVE_FROM(picture_table, pictures)
|
||||
//MAKE_SORT(picture_table, struct picture, pictures, comp_pictures)
|
||||
MAKE_SORT(picture_table, struct picture, pictures, comp_pictures)
|
||||
//MAKE_REMOVE(picture_table, struct picture, picture)
|
||||
MAKE_CLEAR_TABLE(picture_table, pictures, picture)
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@ extern void copy_pictures(const struct picture_table *s, struct picture_table *d
|
|||
extern void add_picture(struct picture_table *, struct picture newpic);
|
||||
extern bool remove_picture(struct picture_table *, const char *filename);
|
||||
extern int get_picture_idx(const struct picture_table *, const char *filename); /* Return -1 if not found */
|
||||
extern void sort_picture_table(struct picture_table *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -72,8 +72,8 @@
|
|||
#define MAKE_SORT(table_type, item_type, array_name, fun) \
|
||||
static int sortfn_##table_type(const void *_a, const void *_b) \
|
||||
{ \
|
||||
const item_type a = (const item_type)*(const void **)_a; \
|
||||
const item_type b = (const item_type)*(const void **)_b; \
|
||||
const item_type a = *(const item_type *)_a; \
|
||||
const item_type b = *(const item_type *)_b; \
|
||||
return fun(a, b); \
|
||||
} \
|
||||
\
|
||||
|
|
Loading…
Add table
Reference in a new issue