mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-02 09:01:50 -05:00
parent
b6db6e2130
commit
0984096089
13 changed files with 63 additions and 99 deletions
|
|
@ -36,8 +36,7 @@ struct peaks_data {
|
|||
|
||||
static void impl_peaks_free(struct resample *r)
|
||||
{
|
||||
if (r->data)
|
||||
free(r->data);
|
||||
free(r->data);
|
||||
r->data = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ void pw_daemon_config_free(struct pw_daemon_config *config)
|
|||
struct pw_command *cmd, *tmp;
|
||||
|
||||
spa_list_for_each_safe(cmd, tmp, &config->commands, link)
|
||||
pw_command_free(cmd);
|
||||
pw_command_free(cmd);
|
||||
|
||||
free(config);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -440,8 +440,7 @@ static void node_proxy_destroy(void *data)
|
|||
}
|
||||
if (n->info)
|
||||
pw_node_info_free(n->info);
|
||||
if (n->media)
|
||||
free(n->media);
|
||||
free(n->media);
|
||||
if (n->session) {
|
||||
spa_list_remove(&n->session_link);
|
||||
n->session = NULL;
|
||||
|
|
|
|||
|
|
@ -625,8 +625,7 @@ static int negotiate_buffers(struct impl *impl)
|
|||
spa_buffer_alloc_fill_info(&info, 0, NULL, blocks, datas, aligns);
|
||||
info.skel_size = SPA_ROUND_UP_N(info.skel_size, 16);
|
||||
|
||||
if (impl->buffers)
|
||||
free(impl->buffers);
|
||||
free(impl->buffers);
|
||||
impl->buffers = calloc(buffers, sizeof(struct spa_buffer *) + info.skel_size);
|
||||
if (impl->buffers == NULL)
|
||||
return -ENOMEM;
|
||||
|
|
@ -1111,12 +1110,9 @@ static void cleanup(struct impl *impl)
|
|||
pw_unload_spa_interface(impl->adapter);
|
||||
}
|
||||
|
||||
if (impl->buffers)
|
||||
free(impl->buffers);
|
||||
if (impl->mem) {
|
||||
free(impl->buffers);
|
||||
if (impl->mem)
|
||||
pw_memblock_free(impl->mem);
|
||||
impl->mem = NULL;
|
||||
}
|
||||
free(impl);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -216,6 +216,7 @@ static void client_destroy(struct client *this)
|
|||
if (this->sender) {
|
||||
spa_list_remove(&this->link);
|
||||
free(this->sender);
|
||||
this->sender = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -51,11 +51,19 @@ struct pw_device *pw_device_new(struct pw_core *core,
|
|||
struct pw_device *this;
|
||||
|
||||
this = calloc(1, sizeof(*this) + user_data_size);
|
||||
if (this == NULL)
|
||||
return NULL;
|
||||
|
||||
if (properties == NULL)
|
||||
properties = pw_properties_new(NULL, NULL);
|
||||
if (properties == NULL)
|
||||
goto no_mem;
|
||||
|
||||
this->core = core;
|
||||
this->properties = properties;
|
||||
|
||||
this->info.name = strdup(name);
|
||||
this->info.props = properties ? &properties->dict : NULL;
|
||||
this->info.props = &properties->dict;
|
||||
spa_hook_list_init(&this->listener_list);
|
||||
|
||||
spa_list_init(&this->node_list);
|
||||
|
|
@ -66,6 +74,10 @@ struct pw_device *pw_device_new(struct pw_core *core,
|
|||
pw_log_debug("device %p: new %s", this, name);
|
||||
|
||||
return this;
|
||||
|
||||
no_mem:
|
||||
free(this);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void pw_device_destroy(struct pw_device *device)
|
||||
|
|
@ -85,10 +97,8 @@ void pw_device_destroy(struct pw_device *device)
|
|||
spa_hook_remove(&device->global_listener);
|
||||
pw_global_destroy(device->global);
|
||||
}
|
||||
if (device->info.name)
|
||||
free((char *)device->info.name);
|
||||
if (device->properties)
|
||||
pw_properties_free(device->properties);
|
||||
free((char *)device->info.name);
|
||||
pw_properties_free(device->properties);
|
||||
|
||||
free(device);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,8 +73,7 @@ void pw_factory_destroy(struct pw_factory *factory)
|
|||
spa_hook_remove(&factory->global_listener);
|
||||
pw_global_destroy(factory->global);
|
||||
}
|
||||
if (factory->info.name)
|
||||
free((char *)factory->info.name);
|
||||
free((char *)factory->info.name);
|
||||
if (factory->properties)
|
||||
pw_properties_free(factory->properties);
|
||||
|
||||
|
|
|
|||
|
|
@ -135,23 +135,19 @@ struct pw_core_info *pw_core_info_update(struct pw_core_info *info,
|
|||
info->change_mask = update->change_mask;
|
||||
|
||||
if (update->change_mask & PW_CORE_CHANGE_MASK_USER_NAME) {
|
||||
if (info->user_name)
|
||||
free((void *) info->user_name);
|
||||
free((void *) info->user_name);
|
||||
info->user_name = update->user_name ? strdup(update->user_name) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_CORE_CHANGE_MASK_HOST_NAME) {
|
||||
if (info->host_name)
|
||||
free((void *) info->host_name);
|
||||
free((void *) info->host_name);
|
||||
info->host_name = update->host_name ? strdup(update->host_name) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_CORE_CHANGE_MASK_VERSION) {
|
||||
if (info->version)
|
||||
free((void *) info->version);
|
||||
free((void *) info->version);
|
||||
info->version = update->version ? strdup(update->version) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_CORE_CHANGE_MASK_NAME) {
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
info->name = update->name ? strdup(update->name) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_CORE_CHANGE_MASK_COOKIE)
|
||||
|
|
@ -166,14 +162,10 @@ struct pw_core_info *pw_core_info_update(struct pw_core_info *info,
|
|||
|
||||
void pw_core_info_free(struct pw_core_info *info)
|
||||
{
|
||||
if (info->user_name)
|
||||
free((void *) info->user_name);
|
||||
if (info->host_name)
|
||||
free((void *) info->host_name);
|
||||
if (info->version)
|
||||
free((void *) info->version);
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->user_name);
|
||||
free((void *) info->host_name);
|
||||
free((void *) info->version);
|
||||
free((void *) info->name);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
@ -195,8 +187,7 @@ struct pw_node_info *pw_node_info_update(struct pw_node_info *info,
|
|||
info->change_mask = update->change_mask;
|
||||
|
||||
if (update->change_mask & PW_NODE_CHANGE_MASK_NAME) {
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
info->name = update->name ? strdup(update->name) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_NODE_CHANGE_MASK_INPUT_PORTS) {
|
||||
|
|
@ -210,8 +201,7 @@ struct pw_node_info *pw_node_info_update(struct pw_node_info *info,
|
|||
|
||||
if (update->change_mask & PW_NODE_CHANGE_MASK_STATE) {
|
||||
info->state = update->state;
|
||||
if (info->error)
|
||||
free((void *) info->error);
|
||||
free((void *) info->error);
|
||||
info->error = update->error ? strdup(update->error) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_NODE_CHANGE_MASK_PROPS) {
|
||||
|
|
@ -225,10 +215,8 @@ struct pw_node_info *pw_node_info_update(struct pw_node_info *info,
|
|||
void pw_node_info_free(struct pw_node_info *info)
|
||||
{
|
||||
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
if (info->error)
|
||||
free((void *) info->error);
|
||||
free((void *) info->name);
|
||||
free((void *) info->error);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
@ -278,8 +266,7 @@ struct pw_factory_info *pw_factory_info_update(struct pw_factory_info *info,
|
|||
return NULL;
|
||||
}
|
||||
info->id = update->id;
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
info->name = update->name ? strdup(update->name) : NULL;
|
||||
info->type = update->type;
|
||||
info->version = update->version;
|
||||
|
|
@ -295,8 +282,7 @@ struct pw_factory_info *pw_factory_info_update(struct pw_factory_info *info,
|
|||
|
||||
void pw_factory_info_free(struct pw_factory_info *info)
|
||||
{
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
@ -317,18 +303,15 @@ struct pw_module_info *pw_module_info_update(struct pw_module_info *info,
|
|||
info->change_mask = update->change_mask;
|
||||
|
||||
if (update->change_mask & PW_MODULE_CHANGE_MASK_NAME) {
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
info->name = update->name ? strdup(update->name) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_MODULE_CHANGE_MASK_FILENAME) {
|
||||
if (info->filename)
|
||||
free((void *) info->filename);
|
||||
free((void *) info->filename);
|
||||
info->filename = update->filename ? strdup(update->filename) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_MODULE_CHANGE_MASK_ARGS) {
|
||||
if (info->args)
|
||||
free((void *) info->args);
|
||||
free((void *) info->args);
|
||||
info->args = update->args ? strdup(update->args) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_MODULE_CHANGE_MASK_PROPS) {
|
||||
|
|
@ -341,12 +324,9 @@ struct pw_module_info *pw_module_info_update(struct pw_module_info *info,
|
|||
|
||||
void pw_module_info_free(struct pw_module_info *info)
|
||||
{
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
if (info->filename)
|
||||
free((void *) info->filename);
|
||||
if (info->args)
|
||||
free((void *) info->args);
|
||||
free((void *) info->name);
|
||||
free((void *) info->filename);
|
||||
free((void *) info->args);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
@ -365,8 +345,7 @@ struct pw_device_info *pw_device_info_update(struct pw_device_info *info,
|
|||
return NULL;
|
||||
}
|
||||
info->id = update->id;
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
info->name = update->name ? strdup(update->name) : NULL;
|
||||
info->change_mask = update->change_mask;
|
||||
|
||||
|
|
@ -380,8 +359,7 @@ struct pw_device_info *pw_device_info_update(struct pw_device_info *info,
|
|||
|
||||
void pw_device_info_free(struct pw_device_info *info)
|
||||
{
|
||||
if (info->name)
|
||||
free((void *) info->name);
|
||||
free((void *) info->name);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
@ -440,13 +418,11 @@ struct pw_link_info *pw_link_info_update(struct pw_link_info *info,
|
|||
}
|
||||
if (update->change_mask & PW_LINK_CHANGE_MASK_STATE) {
|
||||
info->state = update->state;
|
||||
if (info->error)
|
||||
free((void *) info->error);
|
||||
free((void *) info->error);
|
||||
info->error = update->error ? strdup(update->error) : NULL;
|
||||
}
|
||||
if (update->change_mask & PW_LINK_CHANGE_MASK_FORMAT) {
|
||||
if (info->format)
|
||||
free(info->format);
|
||||
free(info->format);
|
||||
info->format = pw_spa_pod_copy(update->format);
|
||||
}
|
||||
if (update->change_mask & PW_LINK_CHANGE_MASK_PROPS) {
|
||||
|
|
@ -459,10 +435,8 @@ struct pw_link_info *pw_link_info_update(struct pw_link_info *info,
|
|||
|
||||
void pw_link_info_free(struct pw_link_info *info)
|
||||
{
|
||||
if (info->error)
|
||||
free((void *) info->error);
|
||||
if (info->format)
|
||||
free(info->format);
|
||||
free((void *) info->error);
|
||||
free(info->format);
|
||||
if (info->props)
|
||||
pw_spa_dict_destroy(info->props);
|
||||
free(info);
|
||||
|
|
|
|||
|
|
@ -110,8 +110,7 @@ static void pw_link_update_state(struct pw_link *link, enum pw_link_state state,
|
|||
}
|
||||
|
||||
link->info.state = state;
|
||||
if (link->info.error)
|
||||
free((char*)link->info.error);
|
||||
free((char*)link->info.error);
|
||||
link->info.error = error;
|
||||
|
||||
pw_link_events_state_changed(link, old, state, error);
|
||||
|
|
@ -312,8 +311,7 @@ static int do_negotiate(struct pw_link *this, uint32_t in_state, uint32_t out_st
|
|||
}
|
||||
}
|
||||
|
||||
if (this->info.format)
|
||||
free(this->info.format);
|
||||
free(this->info.format);
|
||||
this->info.format = format;
|
||||
|
||||
if (changed) {
|
||||
|
|
@ -332,8 +330,7 @@ static int do_negotiate(struct pw_link *this, uint32_t in_state, uint32_t out_st
|
|||
|
||||
error:
|
||||
pw_link_update_state(this, PW_LINK_STATE_ERROR, error);
|
||||
if (format)
|
||||
free(format);
|
||||
free(format);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
@ -1515,9 +1512,7 @@ void pw_link_destroy(struct pw_link *link)
|
|||
if (link->properties)
|
||||
pw_properties_free(link->properties);
|
||||
|
||||
if (link->info.format)
|
||||
free(link->info.format);
|
||||
|
||||
free(link->info.format);
|
||||
free(impl);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -303,12 +303,9 @@ void pw_module_destroy(struct pw_module *module)
|
|||
pw_global_destroy(module->global);
|
||||
}
|
||||
|
||||
if (module->info.name)
|
||||
free((char *) module->info.name);
|
||||
if (module->info.filename)
|
||||
free((char *) module->info.filename);
|
||||
if (module->info.args)
|
||||
free((char *) module->info.args);
|
||||
free((char *) module->info.name);
|
||||
free((char *) module->info.filename);
|
||||
free((char *) module->info.args);
|
||||
|
||||
pw_properties_free(module->properties);
|
||||
|
||||
|
|
|
|||
|
|
@ -175,8 +175,7 @@ static void node_update_state(struct pw_node *node, enum pw_node_state state, ch
|
|||
pw_node_state_as_string(old), pw_node_state_as_string(state));
|
||||
}
|
||||
|
||||
if (node->info.error)
|
||||
free((char*)node->info.error);
|
||||
free((char*)node->info.error);
|
||||
node->info.error = error;
|
||||
node->info.state = state;
|
||||
|
||||
|
|
|
|||
|
|
@ -140,8 +140,7 @@ pw_remote_update_state(struct pw_remote *remote, enum pw_remote_state state, con
|
|||
enum pw_remote_state old = remote->state;
|
||||
|
||||
if (old != state) {
|
||||
if (remote->error)
|
||||
free(remote->error);
|
||||
free(remote->error);
|
||||
|
||||
if (fmt) {
|
||||
va_list varargs;
|
||||
|
|
@ -318,8 +317,7 @@ void pw_remote_destroy(struct pw_remote *remote)
|
|||
pw_map_clear(&remote->objects);
|
||||
|
||||
pw_log_debug("remote %p: free", remote);
|
||||
if (remote->properties)
|
||||
pw_properties_free(remote->properties);
|
||||
pw_properties_free(remote->properties);
|
||||
free(remote->error);
|
||||
free(impl);
|
||||
}
|
||||
|
|
@ -484,7 +482,7 @@ int pw_remote_disconnect(struct pw_remote *remote)
|
|||
pw_map_reset(&remote->objects);
|
||||
|
||||
if (remote->info) {
|
||||
pw_core_info_free (remote->info);
|
||||
pw_core_info_free(remote->info);
|
||||
remote->info = NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -212,8 +212,7 @@ static bool stream_set_state(struct pw_stream *stream, enum pw_stream_state stat
|
|||
enum pw_stream_state old = stream->state;
|
||||
bool res = old != state;
|
||||
if (res) {
|
||||
if (stream->error)
|
||||
free(stream->error);
|
||||
free(stream->error);
|
||||
stream->error = error ? strdup(error) : NULL;
|
||||
|
||||
pw_log_debug("stream %p: update state from %s -> %s (%s)", stream,
|
||||
|
|
@ -995,13 +994,11 @@ void pw_stream_destroy(struct pw_stream *stream)
|
|||
clear_params(stream, PARAM_TYPE_INIT | PARAM_TYPE_OTHER | PARAM_TYPE_FORMAT);
|
||||
pw_array_clear(&impl->params);
|
||||
|
||||
if (stream->error)
|
||||
free(stream->error);
|
||||
free(stream->error);
|
||||
|
||||
pw_properties_free(stream->properties);
|
||||
|
||||
if (stream->name)
|
||||
free(stream->name);
|
||||
free(stream->name);
|
||||
|
||||
if (impl->free_data)
|
||||
pw_core_destroy(impl->data.core);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue