mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
Fix some badly-behaved macros
Some macros evaluated their arguments more than once when it was not needed, or were missing parentheses.
This commit is contained in:
parent
bb4f274ae0
commit
671a7102ff
46 changed files with 162 additions and 156 deletions
|
|
@ -140,9 +140,9 @@ struct pw_client_node0_message_port_reuse_buffer {
|
|||
|
||||
#define PW_CLIENT_NODE0_MESSAGE_TYPE(message) (((struct pw_client_node0_message*)(message))->body.type.value)
|
||||
|
||||
#define PW_CLIENT_NODE0_MESSAGE_INIT(message) (struct pw_client_node0_message) \
|
||||
#define PW_CLIENT_NODE0_MESSAGE_INIT(message) ((struct pw_client_node0_message) \
|
||||
{ { { sizeof(struct pw_client_node0_message_body), SPA_TYPE_Struct } }, \
|
||||
{ SPA_POD_INIT_Int(message) } }
|
||||
{ SPA_POD_INIT_Int(message) } })
|
||||
|
||||
#define PW_CLIENT_NODE0_MESSAGE_INIT_FULL(type,size,message,...) (type) \
|
||||
{ { { size, SPA_TYPE_Struct } }, \
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ struct footer_builder {
|
|||
unsigned int started:1;
|
||||
};
|
||||
|
||||
#define FOOTER_BUILDER_INIT(builder) (struct footer_builder) { builder }
|
||||
#define FOOTER_BUILDER_INIT(builder) ((struct footer_builder) { (builder) })
|
||||
|
||||
static void start_footer_entry(struct footer_builder *fb, uint32_t opcode)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -219,13 +219,13 @@ do { \
|
|||
spa_pod_parser_get(prs, \
|
||||
SPA_POD_Int(&(n_params)), NULL) < 0) \
|
||||
return -EINVAL; \
|
||||
params = NULL; \
|
||||
if (n_params > 0) { \
|
||||
(params) = NULL; \
|
||||
if ((n_params) > 0) { \
|
||||
uint32_t i; \
|
||||
if (n_params > MAX_PARAM_INFO) \
|
||||
if ((n_params) > MAX_PARAM_INFO) \
|
||||
return -ENOSPC; \
|
||||
params = alloca(n_params * sizeof(struct spa_param_info)); \
|
||||
for (i = 0; i < n_params; i++) { \
|
||||
(params) = alloca((n_params) * sizeof(struct spa_param_info)); \
|
||||
for (i = 0; i < (n_params); i++) { \
|
||||
if (spa_pod_parser_get(prs, \
|
||||
SPA_POD_Id(&(params)[i].id), \
|
||||
SPA_POD_Int(&(params)[i].flags), NULL) < 0) \
|
||||
|
|
@ -240,18 +240,18 @@ do { \
|
|||
do { \
|
||||
if (spa_pod_parser_push_struct(prs, f) < 0 || \
|
||||
spa_pod_parser_get(prs, \
|
||||
SPA_POD_Int(&n_permissions), NULL) < 0) \
|
||||
SPA_POD_Int(&(n_permissions)), NULL) < 0) \
|
||||
return -EINVAL; \
|
||||
permissions = NULL; \
|
||||
if (n_permissions > 0) { \
|
||||
(permissions) = NULL; \
|
||||
if ((n_permissions) > 0) { \
|
||||
uint32_t i; \
|
||||
if (n_permissions > MAX_PERMISSIONS) \
|
||||
if ((n_permissions) > MAX_PERMISSIONS) \
|
||||
return -ENOSPC; \
|
||||
permissions = alloca(n_permissions * sizeof(struct pw_permission)); \
|
||||
for (i = 0; i < n_permissions; i++) { \
|
||||
(permissions) = alloca((n_permissions) * sizeof(struct pw_permission)); \
|
||||
for (i = 0; i < (n_permissions); i++) { \
|
||||
if (spa_pod_parser_get(prs, \
|
||||
SPA_POD_Int(&permissions[i].id), \
|
||||
SPA_POD_Int(&permissions[i].permissions), NULL) < 0) \
|
||||
SPA_POD_Int(&(permissions)[i].id), \
|
||||
SPA_POD_Int(&(permissions)[i].permissions), NULL) < 0) \
|
||||
return -EINVAL; \
|
||||
} \
|
||||
} \
|
||||
|
|
|
|||
|
|
@ -415,7 +415,7 @@ struct spa_pod_prop_body0 {
|
|||
(iter) <= SPA_PTROFF((body), (_size)-(body)->value.size, __typeof__(*iter)); \
|
||||
(iter) = SPA_PTROFF((iter), (body)->value.size, __typeof__(*iter)))
|
||||
|
||||
#define SPA0_POD_PROP_N_VALUES(b,size) ((size - sizeof(struct spa_pod_prop_body0)) / (b)->value.size)
|
||||
#define SPA0_POD_PROP_N_VALUES(b,size) (((size) - sizeof(struct spa_pod_prop_body0)) / (b)->value.size)
|
||||
|
||||
static int remap_from_v2(uint32_t type, void *body, uint32_t size, struct pw_impl_client *client,
|
||||
struct spa_pod_builder *builder)
|
||||
|
|
|
|||
|
|
@ -35,13 +35,13 @@
|
|||
|
||||
#define MAX_PARAMS 32
|
||||
|
||||
#define manager_emit_sync(m) spa_hook_list_call(&m->hooks, struct pw_manager_events, sync, 0)
|
||||
#define manager_emit_added(m,o) spa_hook_list_call(&m->hooks, struct pw_manager_events, added, 0, o)
|
||||
#define manager_emit_updated(m,o) spa_hook_list_call(&m->hooks, struct pw_manager_events, updated, 0, o)
|
||||
#define manager_emit_removed(m,o) spa_hook_list_call(&m->hooks, struct pw_manager_events, removed, 0, o)
|
||||
#define manager_emit_metadata(m,o,s,k,t,v) spa_hook_list_call(&m->hooks, struct pw_manager_events, metadata,0,o,s,k,t,v)
|
||||
#define manager_emit_disconnect(m) spa_hook_list_call(&m->hooks, struct pw_manager_events, disconnect, 0)
|
||||
#define manager_emit_object_data_timeout(m,o,k) spa_hook_list_call(&m->hooks, struct pw_manager_events, object_data_timeout,0,o,k)
|
||||
#define manager_emit_sync(m) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, sync, 0)
|
||||
#define manager_emit_added(m,o) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, added, 0, o)
|
||||
#define manager_emit_updated(m,o) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, updated, 0, o)
|
||||
#define manager_emit_removed(m,o) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, removed, 0, o)
|
||||
#define manager_emit_metadata(m,o,s,k,t,v) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, metadata,0,o,s,k,t,v)
|
||||
#define manager_emit_disconnect(m) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, disconnect, 0)
|
||||
#define manager_emit_object_data_timeout(m,o,k) spa_hook_list_call(&(m)->hooks, struct pw_manager_events, object_data_timeout,0,o,k)
|
||||
|
||||
struct object;
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ struct tunnel_info {
|
|||
const char *domain;
|
||||
};
|
||||
|
||||
#define TUNNEL_INFO(...) (struct tunnel_info){ __VA_ARGS__ }
|
||||
#define TUNNEL_INFO(...) ((struct tunnel_info){ __VA_ARGS__ })
|
||||
|
||||
struct tunnel {
|
||||
struct spa_list link;
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ struct tunnel_info {
|
|||
const char *domain;
|
||||
};
|
||||
|
||||
#define TUNNEL_INFO(...) (struct tunnel_info){ __VA_ARGS__ }
|
||||
#define TUNNEL_INFO(...) ((struct tunnel_info){ __VA_ARGS__ })
|
||||
|
||||
struct tunnel {
|
||||
struct spa_list link;
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ struct pw_array {
|
|||
size_t extend; /**< number of bytes to extend with */
|
||||
};
|
||||
|
||||
#define PW_ARRAY_INIT(extend) (struct pw_array) { NULL, 0, 0, extend }
|
||||
#define PW_ARRAY_INIT(extend) ((struct pw_array) { NULL, 0, 0, (extend) })
|
||||
|
||||
#define pw_array_get_len_s(a,s) ((a)->size / (s))
|
||||
#define pw_array_get_unchecked_s(a,idx,s,t) SPA_PTROFF((a)->data,(idx)*(s),t)
|
||||
|
|
@ -67,17 +67,17 @@ struct pw_array {
|
|||
|
||||
#define pw_array_first(a) ((a)->data)
|
||||
#define pw_array_end(a) SPA_PTROFF((a)->data, (a)->size, void)
|
||||
#define pw_array_check(a,p) (SPA_PTROFF(p,sizeof(*p),void) <= pw_array_end(a))
|
||||
#define pw_array_check(a,p) (SPA_PTROFF(p,sizeof(*(p)),void) <= pw_array_end(a))
|
||||
|
||||
#define pw_array_for_each(pos, array) \
|
||||
for (pos = (__typeof__(pos)) pw_array_first(array); \
|
||||
for ((pos) = (__typeof__(pos)) pw_array_first(array); \
|
||||
pw_array_check(array, pos); \
|
||||
(pos)++)
|
||||
|
||||
#define pw_array_consume(pos, array) \
|
||||
for (pos = (__typeof__(pos)) pw_array_first(array); \
|
||||
for ((pos) = (__typeof__(pos)) pw_array_first(array); \
|
||||
pw_array_check(array, pos); \
|
||||
pos = (__typeof__(pos)) pw_array_first(array))
|
||||
(pos) = (__typeof__(pos)) pw_array_first(array))
|
||||
|
||||
#define pw_array_remove(a,p) \
|
||||
({ \
|
||||
|
|
|
|||
|
|
@ -1179,7 +1179,7 @@ struct match {
|
|||
struct pw_filter *filter;
|
||||
int count;
|
||||
};
|
||||
#define MATCH_INIT(f) (struct match){ .filter = f }
|
||||
#define MATCH_INIT(f) ((struct match){ .filter = (f) })
|
||||
|
||||
static int execute_match(void *data, const char *location, const char *action,
|
||||
const char *val, size_t len)
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ _pw_log_topic_new(struct spa_log_topic *topic);
|
|||
*/
|
||||
#define PW_LOG_TOPIC_STATIC(var, topic) \
|
||||
static struct spa_log_topic var##__LINE__ = SPA_LOG_TOPIC(0, topic); \
|
||||
static struct spa_log_topic *var = &(var##__LINE__)
|
||||
static struct spa_log_topic *(var) = &(var##__LINE__)
|
||||
|
||||
/**
|
||||
* Declare a static log topic named \a var.
|
||||
|
|
@ -131,7 +131,7 @@ _pw_log_topic_new(struct spa_log_topic *topic);
|
|||
*/
|
||||
#define PW_LOG_TOPIC(var, topic) \
|
||||
struct spa_log_topic var##__LINE__ = SPA_LOG_TOPIC(0, topic); \
|
||||
struct spa_log_topic *var = &(var##__LINE__)
|
||||
struct spa_log_topic *(var) = &(var##__LINE__)
|
||||
|
||||
#define PW_LOG_TOPIC_INIT(var) \
|
||||
spa_log_topic_init(pw_log_get(), var);
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ struct pw_map {
|
|||
};
|
||||
|
||||
/** \param extend the amount of bytes to grow the map with when needed */
|
||||
#define PW_MAP_INIT(extend) (struct pw_map) { PW_ARRAY_INIT(extend), SPA_ID_INVALID }
|
||||
#define PW_MAP_INIT(extend) ((struct pw_map) { PW_ARRAY_INIT(extend), SPA_ID_INVALID })
|
||||
|
||||
/**
|
||||
* Get the number of currently allocated elements in the map.
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ struct pw_permission {
|
|||
uint32_t permissions; /**< bitmask of above permissions */
|
||||
};
|
||||
|
||||
#define PW_PERMISSION_INIT(id,p) (struct pw_permission){ (id), (p) }
|
||||
#define PW_PERMISSION_INIT(id,p) ((struct pw_permission){ (id), (p) })
|
||||
|
||||
#define PW_PERMISSION_FORMAT "%c%c%c%c"
|
||||
#define PW_PERMISSION_ARGS(permission) \
|
||||
|
|
|
|||
|
|
@ -177,7 +177,7 @@ static inline struct spa_param_info *pw_param_info_find(struct spa_param_info in
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#define pw_protocol_emit_destroy(p) spa_hook_list_call(&p->listener_list, struct pw_protocol_events, destroy, 0)
|
||||
#define pw_protocol_emit_destroy(p) spa_hook_list_call(&(p)->listener_list, struct pw_protocol_events, destroy, 0)
|
||||
|
||||
struct pw_protocol {
|
||||
struct spa_list link; /**< link in context protocol_list */
|
||||
|
|
@ -805,7 +805,7 @@ struct pw_impl_port_implementation {
|
|||
#define pw_impl_port_emit_param_changed(p,i) pw_impl_port_emit(p, param_changed, 1, i)
|
||||
#define pw_impl_port_emit_latency_changed(p) pw_impl_port_emit(p, latency_changed, 2)
|
||||
|
||||
#define PW_IMPL_PORT_IS_CONTROL(port) SPA_FLAG_MASK(port->flags, \
|
||||
#define PW_IMPL_PORT_IS_CONTROL(port) SPA_FLAG_MASK((port)->flags, \
|
||||
PW_IMPL_PORT_FLAG_BUFFERS|PW_IMPL_PORT_FLAG_CONTROL,\
|
||||
PW_IMPL_PORT_FLAG_CONTROL)
|
||||
struct pw_impl_port {
|
||||
|
|
|
|||
|
|
@ -1402,7 +1402,7 @@ struct match {
|
|||
struct pw_stream *stream;
|
||||
int count;
|
||||
};
|
||||
#define MATCH_INIT(s) (struct match){ .stream = s }
|
||||
#define MATCH_INIT(s) ((struct match){ .stream = (s) })
|
||||
|
||||
static int execute_match(void *data, const char *location, const char *action,
|
||||
const char *val, size_t len)
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ static void do_stop(void *data, uint64_t count)
|
|||
|
||||
#define CHECK(expression,label) \
|
||||
do { \
|
||||
if ((errno = expression) != 0) { \
|
||||
if ((errno = (expression)) != 0) { \
|
||||
res = -errno; \
|
||||
pw_log_error(#expression ": %s", strerror(errno)); \
|
||||
goto label; \
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#define CHECK(expression,label) \
|
||||
do { \
|
||||
if ((errno = expression) != 0) { \
|
||||
if ((errno = (expression)) != 0) { \
|
||||
res = -errno; \
|
||||
pw_log_error(#expression ": %s", strerror(errno)); \
|
||||
goto label; \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue