mirror of
https://github.com/albfan/miraclecast.git
synced 2025-03-09 23:38:56 +00:00
refactoring getter/setter for dict type of wfd_arg to remove declaration
of temp variable
This commit is contained in:
parent
04886d862b
commit
857cb11704
1 changed files with 25 additions and 15 deletions
|
@ -91,29 +91,39 @@
|
||||||
)(_a); \
|
)(_a); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define wfd_arg_getkv(_a, _k, _v) ({ \
|
#define wfd_arg_get_dictk(_a, _k) ({ \
|
||||||
assert(_a); \
|
assert(_a); \
|
||||||
assert(WFD_ARG_DICT == (_a)->type); \
|
assert(WFD_ARG_DICT == (_a)->type); \
|
||||||
wfd_arg_get((_a)->k, (_k)); \
|
wfd_arg_get((_a)->k, (_k)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define wfd_arg_get_dictv(_a, _v) ({ \
|
||||||
|
assert(_a); \
|
||||||
|
assert(WFD_ARG_DICT == (_a)->type); \
|
||||||
wfd_arg_get((_a)->v, (_v)); \
|
wfd_arg_get((_a)->v, (_v)); \
|
||||||
})
|
})
|
||||||
|
|
||||||
#define wfd_arg_list_get(_l, _i, _v) ({ \
|
#define wfd_arg_get_dict(_a, _k, _v) ({ \
|
||||||
assert(_l); \
|
assert(_a); \
|
||||||
assert((_i) >= 0 && (_i) < (_l)->len); \
|
assert(WFD_ARG_DICT == (_a)->type); \
|
||||||
struct wfd_arg *arg = (_l)->discrete \
|
wfd_arg_get_dictk(_a, _k); \
|
||||||
? &(_l)->argv[(_i)] \
|
wfd_arg_get_dictv(_a, _v); \
|
||||||
: &(_l)->args[(_i)]; \
|
|
||||||
wfd_arg_get(arg, _v); \
|
|
||||||
})
|
})
|
||||||
|
|
||||||
#define wfd_arg_list_getkv(_l, _i, _k, _v) ({ \
|
#define wfd_arg_list_get(_l, _i, _v) ({ \
|
||||||
assert(_l); \
|
wfd_arg_get(wfd_arg_list_at((_l), (_i)), (_v)); \
|
||||||
assert((_i) >= 0 && (_i) < (_l)->len); \
|
})
|
||||||
struct wfd_arg *arg = (_l)->discrete \
|
|
||||||
? &(_l)->argv[(_i)] \
|
#define wfd_arg_list_get_dictk(_l, _i, _k) ({ \
|
||||||
: &(_l)->args[(_i)]; \
|
wfd_arg_get_dictk(wfd_arg_list_at((_l), (_i)), (_k)); \
|
||||||
wfd_arg_getkv(arg, (_k), (_v)); \
|
})
|
||||||
|
|
||||||
|
#define wfd_arg_list_get_dictv(_l, _i, _v) ({ \
|
||||||
|
wfd_arg_get_dictv(wfd_arg_list_at((_l), (_i)), (_v)); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define wfd_arg_list_get_dict(_l, _i, _k, _v) ({ \
|
||||||
|
wfd_arg_get_dict(wfd_arg_list_at((_l), (_i)), (_k), (_v)); \
|
||||||
})
|
})
|
||||||
|
|
||||||
enum wfd_arg_type
|
enum wfd_arg_type
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue