mirror of
https://gitlab.freedesktop.org/pipewire/pipewire
synced 2024-10-04 23:20:46 +00:00
resource: allow NULL resource in error
And then log en error instead. We can remove some awkward patterns in modules.
This commit is contained in:
parent
8aea38e81a
commit
1a911a9ccd
|
@ -243,21 +243,16 @@ static void *create_object(void *_data,
|
|||
|
||||
error_properties:
|
||||
res = -EINVAL;
|
||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, d->this);
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: " FACTORY_USAGE);
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: " FACTORY_USAGE);
|
||||
goto error_cleanup;
|
||||
error_errno:
|
||||
res = -errno;
|
||||
pw_log_error("can't create node: %m");
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res, "can't create node: %s", spa_strerror(res));
|
||||
pw_resource_errorf_id(resource, new_id, res, "can't create node: %s", spa_strerror(res));
|
||||
goto error_cleanup;
|
||||
error_usage:
|
||||
res = -EINVAL;
|
||||
pw_log_error("usage: "ADAPTER_USAGE);
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: "ADAPTER_USAGE);
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: "ADAPTER_USAGE);
|
||||
goto error_cleanup;
|
||||
error_cleanup:
|
||||
pw_properties_free(properties);
|
||||
|
|
|
@ -121,15 +121,11 @@ static void *create_object(void *_data,
|
|||
return result;
|
||||
|
||||
error_resource:
|
||||
pw_log_error("can't create resource: %s", spa_strerror(res));
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"can't create resource: %s", spa_strerror(res));
|
||||
goto error_exit;
|
||||
error_node:
|
||||
pw_log_error("can't create metadata: %s", spa_strerror(res));
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"can't create metadata: %s", spa_strerror(res));
|
||||
goto error_exit_free;
|
||||
|
||||
|
|
|
@ -264,8 +264,7 @@ done:
|
|||
return res;
|
||||
|
||||
error:
|
||||
if (client->core_resource)
|
||||
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
||||
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
||||
res, spa_strerror(res));
|
||||
goto done;
|
||||
}
|
||||
|
|
|
@ -165,15 +165,10 @@ static void *create_object(void *_data,
|
|||
|
||||
error_properties:
|
||||
res = -EINVAL;
|
||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, data->this);
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"usage: "FACTORY_USAGE);
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: "FACTORY_USAGE);
|
||||
goto error_exit_cleanup;
|
||||
error_device:
|
||||
pw_log_debug("can't create device %s: %s", factory_name, spa_strerror(res));
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"can't create device %s: %s", factory_name,
|
||||
spa_strerror(res));
|
||||
goto error_exit;
|
||||
|
|
|
@ -163,16 +163,11 @@ static void *create_object(void *_data,
|
|||
|
||||
error_properties:
|
||||
res = -EINVAL;
|
||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, data->this);
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"usage: "FACTORY_USAGE);
|
||||
pw_resource_errorf_id(resource, new_id, res, "usage: "FACTORY_USAGE);
|
||||
goto error_exit_cleanup;
|
||||
error_create_node:
|
||||
res = -errno;
|
||||
pw_log_error("can't create node: %m");
|
||||
if (resource)
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
pw_resource_errorf_id(resource, new_id, res,
|
||||
"can't create node: %s", spa_strerror(res));
|
||||
goto error_exit;
|
||||
error_bind:
|
||||
|
|
|
@ -360,7 +360,11 @@ pw_core_resource_errorv(struct pw_resource *resource, uint32_t id, int seq,
|
|||
buffer[1023] = '\0';
|
||||
pw_log_debug("resource %p: id:%d seq:%d res:%d (%s) msg:\"%s\"",
|
||||
resource, id, seq, res, spa_strerror(res), buffer);
|
||||
pw_core_resource_error(resource, id, seq, res, buffer);
|
||||
if (resource)
|
||||
pw_core_resource_error(resource, id, seq, res, buffer);
|
||||
else
|
||||
pw_log_error("id:%d seq:%d res:%d (%s) msg:\"%s\"",
|
||||
id, seq, res, spa_strerror(res), buffer);
|
||||
}
|
||||
|
||||
static inline SPA_PRINTF_FUNC(5,6) void
|
||||
|
|
|
@ -228,10 +228,16 @@ uint32_t pw_resource_get_bound_id(struct pw_resource *resource)
|
|||
static void SPA_PRINTF_FUNC(4, 0)
|
||||
pw_resource_errorv_id(struct pw_resource *resource, uint32_t id, int res, const char *error, va_list ap)
|
||||
{
|
||||
struct pw_impl_client *client = resource->client;
|
||||
if (client->core_resource != NULL)
|
||||
pw_core_resource_errorv(client->core_resource,
|
||||
id, client->recv_seq, res, error, ap);
|
||||
struct pw_impl_client *client;
|
||||
|
||||
if (resource) {
|
||||
client = resource->client;
|
||||
if (client->core_resource != NULL)
|
||||
pw_core_resource_errorv(client->core_resource,
|
||||
id, client->recv_seq, res, error, ap);
|
||||
} else {
|
||||
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||
}
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
@ -239,7 +245,10 @@ void pw_resource_errorf(struct pw_resource *resource, int res, const char *error
|
|||
{
|
||||
va_list ap;
|
||||
va_start(ap, error);
|
||||
pw_resource_errorv_id(resource, resource->id, res, error, ap);
|
||||
if (resource)
|
||||
pw_resource_errorv_id(resource, resource->id, res, error, ap);
|
||||
else
|
||||
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
@ -248,17 +257,25 @@ void pw_resource_errorf_id(struct pw_resource *resource, uint32_t id, int res, c
|
|||
{
|
||||
va_list ap;
|
||||
va_start(ap, error);
|
||||
pw_resource_errorv_id(resource, id, res, error, ap);
|
||||
if (resource)
|
||||
pw_resource_errorv_id(resource, id, res, error, ap);
|
||||
else
|
||||
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
void pw_resource_error(struct pw_resource *resource, int res, const char *error)
|
||||
{
|
||||
struct pw_impl_client *client = resource->client;
|
||||
if (client->core_resource != NULL)
|
||||
pw_core_resource_error(client->core_resource,
|
||||
resource->id, client->recv_seq, res, error);
|
||||
struct pw_impl_client *client;
|
||||
if (resource) {
|
||||
client = resource->client;
|
||||
if (client->core_resource != NULL)
|
||||
pw_core_resource_error(client->core_resource,
|
||||
resource->id, client->recv_seq, res, error);
|
||||
} else {
|
||||
pw_log_error("%s: %s", error, spa_strerror(res));
|
||||
}
|
||||
}
|
||||
|
||||
SPA_EXPORT
|
||||
|
|
Loading…
Reference in a new issue