Remove some macros, we can use the paste operator before __VA_ARGS__

This commit is contained in:
Wim Taymans 2017-08-07 19:55:03 +02:00
parent b90dac7656
commit 791fb53503
19 changed files with 31 additions and 50 deletions

View file

@ -280,7 +280,7 @@ pw_client_node_proxy_event(struct pw_client_node_proxy *p, struct spa_event *eve
static inline void static inline void
pw_client_node_proxy_destroy(struct pw_client_node_proxy *p) pw_client_node_proxy_destroy(struct pw_client_node_proxy *p)
{ {
pw_proxy_do_na((struct pw_proxy*)p, struct pw_client_node_proxy_methods, destroy); pw_proxy_do((struct pw_proxy*)p, struct pw_client_node_proxy_methods, destroy);
} }

View file

@ -760,7 +760,7 @@ static bool client_node_demarshal_destroy(void *object, void *data, size_t size)
if (!spa_pod_iter_struct(&it, data, size)) if (!spa_pod_iter_struct(&it, data, size))
return false; return false;
pw_resource_do_na(resource, struct pw_client_node_proxy_methods, destroy); pw_resource_do(resource, struct pw_client_node_proxy_methods, destroy);
return true; return true;
} }

View file

@ -235,7 +235,7 @@ void pw_protocol_native_connection_destroy(struct pw_protocol_native_connection
pw_log_debug("connection %p: destroy", conn); pw_log_debug("connection %p: destroy", conn);
pw_listener_list_emit_na(&conn->listener_list, struct pw_protocol_native_connection_events, destroy); pw_listener_list_emit(&conn->listener_list, struct pw_protocol_native_connection_events, destroy);
free(impl->out.buffer_data); free(impl->out.buffer_data);
free(impl->in.buffer_data); free(impl->in.buffer_data);
@ -430,7 +430,7 @@ pw_protocol_native_connection_end(struct pw_protocol_native_connection *conn,
printf(">>>>>>>>> out:\n"); printf(">>>>>>>>> out:\n");
spa_debug_pod((struct spa_pod *)p); spa_debug_pod((struct spa_pod *)p);
} }
pw_listener_list_emit_na(&conn->listener_list, struct pw_protocol_native_connection_events, need_flush); pw_listener_list_emit(&conn->listener_list, struct pw_protocol_native_connection_events, need_flush);
} }
/** Flush the connection object /** Flush the connection object

View file

@ -352,14 +352,14 @@ static void on_node_need_input(void *data)
{ {
struct impl *impl = data; struct impl *impl = data;
struct pw_node *this = impl->this; struct pw_node *this = impl->this;
pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, need_input); pw_listener_list_emit(&this->listener_list, struct pw_node_events, need_input);
} }
static void on_node_have_output(void *data) static void on_node_have_output(void *data)
{ {
struct impl *impl = data; struct impl *impl = data;
struct pw_node *this = impl->this; struct pw_node *this = impl->this;
pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, have_output); pw_listener_list_emit(&this->listener_list, struct pw_node_events, have_output);
} }
static void static void

View file

@ -175,7 +175,7 @@ void pw_client_destroy(struct pw_client *client)
struct impl *impl = SPA_CONTAINER_OF(client, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(client, struct impl, this);
pw_log_debug("client %p: destroy", client); pw_log_debug("client %p: destroy", client);
pw_listener_list_emit_na(&client->listener_list, struct pw_client_events, destroy); pw_listener_list_emit(&client->listener_list, struct pw_client_events, destroy);
spa_list_remove(&client->link); spa_list_remove(&client->link);
pw_global_destroy(client->global); pw_global_destroy(client->global);
@ -185,7 +185,7 @@ void pw_client_destroy(struct pw_client *client)
pw_map_for_each(&client->objects, destroy_resource, client); pw_map_for_each(&client->objects, destroy_resource, client);
pw_listener_list_emit_na(&client->listener_list, struct pw_client_events, free); pw_listener_list_emit(&client->listener_list, struct pw_client_events, free);
pw_log_debug("client %p: free", impl); pw_log_debug("client %p: free", impl);
pw_map_clear(&client->objects); pw_map_clear(&client->objects);

View file

@ -134,7 +134,7 @@ void pw_data_loop_destroy(struct pw_data_loop *loop)
{ {
pw_log_debug("data-loop %p: destroy", loop); pw_log_debug("data-loop %p: destroy", loop);
pw_listener_list_emit_na(&loop->listener_list, struct pw_data_loop_events, destroy); pw_listener_list_emit(&loop->listener_list, struct pw_data_loop_events, destroy);
pw_data_loop_stop(loop); pw_data_loop_stop(loop);

View file

@ -1123,7 +1123,7 @@ void pw_link_destroy(struct pw_link *link)
struct pw_resource *resource, *tmp; struct pw_resource *resource, *tmp;
pw_log_debug("link %p: destroy", impl); pw_log_debug("link %p: destroy", impl);
pw_listener_list_emit_na(&link->listener_list, struct pw_link_events, destroy); pw_listener_list_emit(&link->listener_list, struct pw_link_events, destroy);
pw_link_deactivate(link); pw_link_deactivate(link);

View file

@ -63,17 +63,7 @@ static inline void pw_listener_remove(struct pw_listener *listener)
spa_list_for_each_safe(ci, t, &list->list, link) { \ spa_list_for_each_safe(ci, t, &list->list, link) { \
const type *cb = ci->events; \ const type *cb = ci->events; \
if (cb->method) \ if (cb->method) \
cb->method(ci->data, __VA_ARGS__); \ cb->method(ci->data, ## __VA_ARGS__); \
} \
});
#define pw_listener_list_emit_na(l,type,method) ({ \
struct pw_listener_list *list = l; \
struct pw_listener *ci, *t; \
spa_list_for_each_safe(ci, t, &list->list, link) { \
const type *cb = ci->events; \
if (cb->method) \
cb->method(ci->data); \
} \ } \
}); });

View file

@ -57,7 +57,7 @@ struct pw_main_loop *pw_main_loop_new(void)
void pw_main_loop_destroy(struct pw_main_loop *loop) void pw_main_loop_destroy(struct pw_main_loop *loop)
{ {
pw_log_debug("main-loop %p: destroy", loop); pw_log_debug("main-loop %p: destroy", loop);
pw_listener_list_emit_na(&loop->listener_list, struct pw_main_loop_events, destroy); pw_listener_list_emit(&loop->listener_list, struct pw_main_loop_events, destroy);
pw_loop_destroy(loop->loop); pw_loop_destroy(loop->loop);

View file

@ -257,7 +257,7 @@ void pw_module_destroy(struct pw_module *module)
struct impl *impl = SPA_CONTAINER_OF(module, struct impl, this); struct impl *impl = SPA_CONTAINER_OF(module, struct impl, this);
struct pw_resource *resource, *tmp; struct pw_resource *resource, *tmp;
pw_listener_list_emit_na(&module->listener_list, struct pw_module_events, destroy); pw_listener_list_emit(&module->listener_list, struct pw_module_events, destroy);
spa_list_for_each_safe(resource, tmp, &module->resource_list, link) spa_list_for_each_safe(resource, tmp, &module->resource_list, link)
pw_resource_destroy(resource); pw_resource_destroy(resource);

View file

@ -315,7 +315,7 @@ void pw_node_register(struct pw_node *this)
node_bind_func, this); node_bind_func, this);
impl->registered = true; impl->registered = true;
pw_listener_list_emit_na(&this->listener_list, struct pw_node_events, initialized); pw_listener_list_emit(&this->listener_list, struct pw_node_events, initialized);
pw_node_update_state(this, PW_NODE_STATE_SUSPENDED, NULL); pw_node_update_state(this, PW_NODE_STATE_SUSPENDED, NULL);
} }
@ -494,7 +494,7 @@ void pw_node_destroy(struct pw_node *node)
struct pw_port *port, *tmpp; struct pw_port *port, *tmpp;
pw_log_debug("node %p: destroy", impl); pw_log_debug("node %p: destroy", impl);
pw_listener_list_emit_na(&node->listener_list, struct pw_node_events, destroy); pw_listener_list_emit(&node->listener_list, struct pw_node_events, destroy);
pw_loop_invoke(node->data_loop, do_node_remove, 1, 0, NULL, true, node); pw_loop_invoke(node->data_loop, do_node_remove, 1, 0, NULL, true, node);
@ -519,7 +519,7 @@ void pw_node_destroy(struct pw_node *node)
} }
pw_log_debug("node %p: free", node); pw_log_debug("node %p: free", node);
pw_listener_list_emit_na(&node->listener_list, struct pw_node_events, free); pw_listener_list_emit(&node->listener_list, struct pw_node_events, free);
pw_work_queue_destroy(impl->work); pw_work_queue_destroy(impl->work);

View file

@ -292,7 +292,7 @@ void pw_port_destroy(struct pw_port *port)
pw_log_debug("port %p: destroy", port); pw_log_debug("port %p: destroy", port);
pw_listener_list_emit_na(&port->listener_list, struct pw_port_events, destroy); pw_listener_list_emit(&port->listener_list, struct pw_port_events, destroy);
if (node) { if (node) {
pw_loop_invoke(port->node->data_loop, do_remove_port, SPA_ID_INVALID, 0, NULL, true, port); pw_loop_invoke(port->node->data_loop, do_remove_port, SPA_ID_INVALID, 0, NULL, true, port);
@ -469,7 +469,9 @@ int pw_port_alloc_buffers(struct pw_port *port,
pw_log_debug("port %p: alloc %d buffers", port, *n_buffers); pw_log_debug("port %p: alloc %d buffers", port, *n_buffers);
if (port->implementation->alloc_buffers) if (port->implementation->alloc_buffers)
res = port->implementation->alloc_buffers(port->implementation_data, params, n_params, buffers, n_buffers); res = port->implementation->alloc_buffers(port->implementation_data,
params, n_params,
buffers, n_buffers);
else else
res = SPA_RESULT_NOT_IMPLEMENTED; res = SPA_RESULT_NOT_IMPLEMENTED;

View file

@ -119,7 +119,7 @@ void pw_proxy_destroy(struct pw_proxy *proxy)
struct proxy *impl = SPA_CONTAINER_OF(proxy, struct proxy, this); struct proxy *impl = SPA_CONTAINER_OF(proxy, struct proxy, this);
pw_log_debug("proxy %p: destroy %u", proxy, proxy->id); pw_log_debug("proxy %p: destroy %u", proxy, proxy->id);
pw_listener_list_emit_na(&proxy->listener_list, struct pw_proxy_events, destroy); pw_listener_list_emit(&proxy->listener_list, struct pw_proxy_events, destroy);
pw_map_remove(&proxy->remote->objects, proxy->id); pw_map_remove(&proxy->remote->objects, proxy->id);
spa_list_remove(&proxy->link); spa_list_remove(&proxy->link);

View file

@ -127,11 +127,8 @@ struct pw_listener_list *pw_proxy_get_proxy_listeners(struct pw_proxy *proxy);
const void *pw_proxy_get_proxy_implementation(struct pw_proxy *proxy); const void *pw_proxy_get_proxy_implementation(struct pw_proxy *proxy);
#define pw_proxy_notify(p,type,event,...) pw_listener_list_emit(pw_proxy_get_proxy_listeners(p),type,event,__VA_ARGS__) #define pw_proxy_notify(p,type,event,...) pw_listener_list_emit(pw_proxy_get_proxy_listeners(p),type,event,## __VA_ARGS__)
#define pw_proxy_notify_na(p,type,event) pw_listener_list_emit_na(pw_proxy_get_proxy_listeners(p),type,event) #define pw_proxy_do(p,type,method,...) ((type*) pw_proxy_get_proxy_implementation(p))->method(p, ## __VA_ARGS__)
#define pw_proxy_do(p,type,method,...) ((type*) pw_proxy_get_proxy_implementation(p))->method(p, __VA_ARGS__)
#define pw_proxy_do_na(p,type,method) ((type*) pw_proxy_get_proxy_implementation(p))->method(p)
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -265,7 +265,7 @@ void pw_remote_destroy(struct pw_remote *remote)
struct pw_stream *stream, *s2; struct pw_stream *stream, *s2;
pw_log_debug("remote %p: destroy", remote); pw_log_debug("remote %p: destroy", remote);
pw_listener_list_emit_na(&remote->listener_list, struct pw_remote_events, destroy); pw_listener_list_emit(&remote->listener_list, struct pw_remote_events, destroy);
if (remote->state != PW_REMOTE_STATE_UNCONNECTED) if (remote->state != PW_REMOTE_STATE_UNCONNECTED)
pw_remote_disconnect(remote); pw_remote_disconnect(remote);

View file

@ -142,7 +142,7 @@ void pw_resource_destroy(struct pw_resource *resource)
struct pw_client *client = resource->client; struct pw_client *client = resource->client;
pw_log_trace("resource %p: destroy %u", resource, resource->id); pw_log_trace("resource %p: destroy %u", resource, resource->id);
pw_listener_list_emit_na(&resource->listener_list, struct pw_resource_events, destroy); pw_listener_list_emit(&resource->listener_list, struct pw_resource_events, destroy);
pw_map_insert_at(&client->objects, resource->id, NULL); pw_map_insert_at(&client->objects, resource->id, NULL);
pw_listener_list_emit(&client->listener_list, struct pw_client_events, resource_removed, resource); pw_listener_list_emit(&client->listener_list, struct pw_client_events, resource_removed, resource);

View file

@ -107,18 +107,10 @@ const void *pw_resource_get_proxy_notify(struct pw_resource *resource);
struct pw_listener *l = pw_resource_get_implementation(r); \ struct pw_listener *l = pw_resource_get_implementation(r); \
const type *cb = l->events; \ const type *cb = l->events; \
if (cb->method) \ if (cb->method) \
cb->method(l->data, __VA_ARGS__); \ cb->method(l->data, ## __VA_ARGS__); \
}); });
#define pw_resource_do_na(r,type,method) ({ \ #define pw_resource_notify(r,type,event,...) ((type*) pw_resource_get_proxy_notify(r))->event(r, ## __VA_ARGS__)
struct pw_listener *l = pw_resource_get_implementation(r); \
const type *cb = l->events; \
if (cb->method) \
cb->method(l->data); \
});
#define pw_resource_notify(r,type,event,...) ((type*) pw_resource_get_proxy_notify(r))->event(r, __VA_ARGS__)
#define pw_resource_notify_na(r,type,event) ((type*) r->marshal->event_marshal)->event(r)
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -313,7 +313,7 @@ void pw_stream_destroy(struct pw_stream *stream)
pw_log_debug("stream %p: destroy", stream); pw_log_debug("stream %p: destroy", stream);
pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, destroy); pw_listener_list_emit(&stream->listener_list, struct pw_stream_events, destroy);
unhandle_socket(stream); unhandle_socket(stream);
@ -514,7 +514,7 @@ static void handle_rtnode_message(struct pw_stream *stream, struct pw_client_nod
} }
pw_log_trace("stream %p: process output", stream); pw_log_trace("stream %p: process output", stream);
impl->in_need_buffer = true; impl->in_need_buffer = true;
pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, need_buffer); pw_listener_list_emit(&stream->listener_list, struct pw_stream_events, need_buffer);
impl->in_need_buffer = false; impl->in_need_buffer = false;
} else if (PW_CLIENT_NODE_MESSAGE_TYPE(message) == PW_CLIENT_NODE_MESSAGE_REUSE_BUFFER) { } else if (PW_CLIENT_NODE_MESSAGE_TYPE(message) == PW_CLIENT_NODE_MESSAGE_REUSE_BUFFER) {
struct pw_client_node_message_reuse_buffer *p = struct pw_client_node_message_reuse_buffer *p =
@ -608,7 +608,7 @@ handle_node_command(struct pw_stream *stream, uint32_t seq, const struct spa_com
send_need_input(stream); send_need_input(stream);
else { else {
impl->in_need_buffer = true; impl->in_need_buffer = true;
pw_listener_list_emit_na(&stream->listener_list, struct pw_stream_events, pw_listener_list_emit(&stream->listener_list, struct pw_stream_events,
need_buffer); need_buffer);
impl->in_need_buffer = false; impl->in_need_buffer = false;
} }

View file

@ -118,7 +118,7 @@ struct pw_thread_loop *pw_thread_loop_new(struct pw_loop *loop, const char *name
/** Destroy a threaded loop \memberof pw_thread_loop */ /** Destroy a threaded loop \memberof pw_thread_loop */
void pw_thread_loop_destroy(struct pw_thread_loop *loop) void pw_thread_loop_destroy(struct pw_thread_loop *loop)
{ {
pw_listener_list_emit_na(&loop->listener_list, struct pw_thread_loop_events, destroy); pw_listener_list_emit(&loop->listener_list, struct pw_thread_loop_events, destroy);
pw_thread_loop_stop(loop); pw_thread_loop_stop(loop);