diff --git a/spa/plugins/audioconvert/resample-peaks.h b/spa/plugins/audioconvert/resample-peaks.h index 396ea1407..998db403b 100644 --- a/spa/plugins/audioconvert/resample-peaks.h +++ b/spa/plugins/audioconvert/resample-peaks.h @@ -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; } diff --git a/src/daemon/daemon-config.c b/src/daemon/daemon-config.c index f6de2282c..cb9bd617b 100644 --- a/src/daemon/daemon-config.c +++ b/src/daemon/daemon-config.c @@ -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); } diff --git a/src/examples/media-session.c b/src/examples/media-session.c index 78ca61ea2..85c64b077 100644 --- a/src/examples/media-session.c +++ b/src/examples/media-session.c @@ -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; diff --git a/src/modules/module-client-node/client-stream.c b/src/modules/module-client-node/client-stream.c index 29685f6e8..0aebab922 100644 --- a/src/modules/module-client-node/client-stream.c +++ b/src/modules/module-client-node/client-stream.c @@ -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); } diff --git a/src/modules/module-protocol-dbus.c b/src/modules/module-protocol-dbus.c index 572a7ccdb..24beab24c 100644 --- a/src/modules/module-protocol-dbus.c +++ b/src/modules/module-protocol-dbus.c @@ -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; } } diff --git a/src/pipewire/device.c b/src/pipewire/device.c index 24fabadfe..5612cc0e3 100644 --- a/src/pipewire/device.c +++ b/src/pipewire/device.c @@ -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); } diff --git a/src/pipewire/factory.c b/src/pipewire/factory.c index 7fa8445a7..abf460ed2 100644 --- a/src/pipewire/factory.c +++ b/src/pipewire/factory.c @@ -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); diff --git a/src/pipewire/introspect.c b/src/pipewire/introspect.c index e6f8d90cb..9e0ad7dc5 100644 --- a/src/pipewire/introspect.c +++ b/src/pipewire/introspect.c @@ -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); diff --git a/src/pipewire/link.c b/src/pipewire/link.c index d51ff8e87..ec43e0193 100644 --- a/src/pipewire/link.c +++ b/src/pipewire/link.c @@ -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); } diff --git a/src/pipewire/module.c b/src/pipewire/module.c index 814490278..b8ec1efbe 100644 --- a/src/pipewire/module.c +++ b/src/pipewire/module.c @@ -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); diff --git a/src/pipewire/node.c b/src/pipewire/node.c index 42f2813e5..7a039e90d 100644 --- a/src/pipewire/node.c +++ b/src/pipewire/node.c @@ -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; diff --git a/src/pipewire/remote.c b/src/pipewire/remote.c index a372d9f3f..0ca5219ac 100644 --- a/src/pipewire/remote.c +++ b/src/pipewire/remote.c @@ -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; } diff --git a/src/pipewire/stream.c b/src/pipewire/stream.c index 663b0a30b..07a9aebcc 100644 --- a/src/pipewire/stream.c +++ b/src/pipewire/stream.c @@ -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);