mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
pipewire: allow NULL pointers in pw_properties_free()
Just like the real free() we should just ignore a NULL pointer, makes the caller code easier for those instances where properties are optional. Patch generated with concinelle with a few manual fixes.
This commit is contained in:
parent
a1e821c259
commit
e0471c6757
68 changed files with 142 additions and 273 deletions
|
|
@ -1078,8 +1078,7 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name,
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
snd_pcm_pipewire_free(pw);
|
||||
return err;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1157,10 +1157,8 @@ int sm_alsa_monitor_start(struct sm_media_session *session)
|
|||
out_free:
|
||||
if (impl->handle)
|
||||
pw_unload_spa_handle(impl->handle);
|
||||
if (impl->conf)
|
||||
pw_properties_free(impl->conf);
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->conf);
|
||||
pw_properties_free(impl->props);
|
||||
free(impl);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -750,10 +750,8 @@ int sm_bluez5_monitor_start(struct sm_media_session *session)
|
|||
return 0;
|
||||
|
||||
out_free:
|
||||
if (impl->conf)
|
||||
pw_properties_free(impl->conf);
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->conf);
|
||||
pw_properties_free(impl->props);
|
||||
free(impl);
|
||||
out:
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -341,10 +341,8 @@ unref:
|
|||
if (!obj->discarded)
|
||||
return 0;
|
||||
|
||||
if (obj->props) {
|
||||
pw_properties_free(obj->props);
|
||||
obj->props = NULL;
|
||||
}
|
||||
pw_properties_free(obj->props);
|
||||
obj->props = NULL;
|
||||
|
||||
spa_list_consume(d, &obj->data, link) {
|
||||
spa_list_remove(&d->link);
|
||||
|
|
@ -818,8 +816,7 @@ static void session_event_info(void *object, const struct pw_session_info *info)
|
|||
if (info) {
|
||||
i->change_mask = info->change_mask;
|
||||
if (info->change_mask & PW_SESSION_CHANGE_MASK_PROPS) {
|
||||
if (i->props)
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
i->props = (struct spa_dict *) pw_properties_new_dict (info->props);
|
||||
}
|
||||
}
|
||||
|
|
@ -857,8 +854,7 @@ static void session_destroy(void *object)
|
|||
spa_list_remove(&endpoint->link);
|
||||
}
|
||||
if (i) {
|
||||
if (i->props)
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
free(i);
|
||||
}
|
||||
|
||||
|
|
@ -898,8 +894,7 @@ static void endpoint_event_info(void *object, const struct pw_endpoint_info *inf
|
|||
i->session_id = info->session_id;
|
||||
}
|
||||
if (info->change_mask & PW_ENDPOINT_CHANGE_MASK_PROPS) {
|
||||
if (i->props)
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
i->props = (struct spa_dict *) pw_properties_new_dict (info->props);
|
||||
if ((str = spa_dict_lookup(i->props, PW_KEY_PRIORITY_SESSION)) != NULL)
|
||||
endpoint->priority = pw_properties_parse_int(str);
|
||||
|
|
@ -954,8 +949,7 @@ static void endpoint_destroy(void *object)
|
|||
spa_list_remove(&endpoint->link);
|
||||
}
|
||||
if (i) {
|
||||
if (i->props)
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
pw_properties_free ((struct pw_properties *)i->props);
|
||||
free(i->name);
|
||||
free(i->media_class);
|
||||
free(i);
|
||||
|
|
@ -1321,8 +1315,7 @@ static void registry_event_free(struct registry_event *re)
|
|||
{
|
||||
if (re->proxy)
|
||||
pw_proxy_destroy(re->proxy);
|
||||
if (re->props_store)
|
||||
pw_properties_free(re->props_store);
|
||||
pw_properties_free(re->props_store);
|
||||
if (re->allocated) {
|
||||
spa_list_remove(&re->link);
|
||||
free(re);
|
||||
|
|
|
|||
|
|
@ -557,8 +557,7 @@ int sm_restore_stream_start(struct sm_media_session *session)
|
|||
|
||||
exit_errno:
|
||||
res = -errno;
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->props);
|
||||
free(impl);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,8 +89,7 @@ pw_session_info_free (struct pw_session_info *info)
|
|||
struct pw_session_info info;
|
||||
} *ext = SPA_CONTAINER_OF(info, struct extended_info, info);
|
||||
|
||||
if (ext->props_storage)
|
||||
pw_properties_free(ext->props_storage);
|
||||
pw_properties_free(ext->props_storage);
|
||||
free((void *) info->params);
|
||||
free(ext);
|
||||
}
|
||||
|
|
@ -160,8 +159,7 @@ pw_endpoint_info_free (struct pw_endpoint_info *info)
|
|||
struct pw_endpoint_info info;
|
||||
} *ext = SPA_CONTAINER_OF(info, struct extended_info, info);
|
||||
|
||||
if (ext->props_storage)
|
||||
pw_properties_free(ext->props_storage);
|
||||
pw_properties_free(ext->props_storage);
|
||||
free(info->name);
|
||||
free(info->media_class);
|
||||
free((void *) info->params);
|
||||
|
|
@ -230,8 +228,7 @@ pw_endpoint_stream_info_free (struct pw_endpoint_stream_info *info)
|
|||
struct pw_endpoint_stream_info info;
|
||||
} *ext = SPA_CONTAINER_OF(info, struct extended_info, info);
|
||||
|
||||
if (ext->props_storage)
|
||||
pw_properties_free(ext->props_storage);
|
||||
pw_properties_free(ext->props_storage);
|
||||
free(info->name);
|
||||
free(info->link_params);
|
||||
free((void *) info->params);
|
||||
|
|
@ -304,8 +301,7 @@ pw_endpoint_link_info_free (struct pw_endpoint_link_info *info)
|
|||
struct pw_endpoint_link_info info;
|
||||
} *ext = SPA_CONTAINER_OF(info, struct extended_info, info);
|
||||
|
||||
if (ext->props_storage)
|
||||
pw_properties_free(ext->props_storage);
|
||||
pw_properties_free(ext->props_storage);
|
||||
free(info->error);
|
||||
free((void *) info->params);
|
||||
free(ext);
|
||||
|
|
|
|||
|
|
@ -274,8 +274,7 @@ static void module_destroy(void *data)
|
|||
spa_hook_remove(&impl->context_listener);
|
||||
spa_hook_remove(&impl->module_listener);
|
||||
|
||||
if (impl->properties)
|
||||
pw_properties_free(impl->properties);
|
||||
pw_properties_free(impl->properties);
|
||||
|
||||
free(impl);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -243,8 +243,7 @@ error_usage:
|
|||
pw_resource_errorf_id(resource, new_id, res, "usage: "ADAPTER_USAGE);
|
||||
goto error_cleanup;
|
||||
error_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -300,8 +300,7 @@ struct pw_impl_node *pw_adapter_new(struct pw_context *context,
|
|||
return node;
|
||||
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -497,8 +497,7 @@ do_update_port(struct node *this,
|
|||
}
|
||||
|
||||
if (change_mask & PW_CLIENT_NODE_PORT_UPDATE_INFO) {
|
||||
if (port->properties)
|
||||
pw_properties_free(port->properties);
|
||||
pw_properties_free(port->properties);
|
||||
port->properties = NULL;
|
||||
port->info.props = NULL;
|
||||
port->info.n_params = 0;
|
||||
|
|
@ -1764,8 +1763,7 @@ error_exit_free:
|
|||
error_exit_cleanup:
|
||||
if (resource)
|
||||
pw_resource_destroy(resource);
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -482,8 +482,7 @@ do_update_port(struct node *this,
|
|||
}
|
||||
|
||||
if (change_mask & PW_CLIENT_NODE0_PORT_UPDATE_INFO) {
|
||||
if (port->properties)
|
||||
pw_properties_free(port->properties);
|
||||
pw_properties_free(port->properties);
|
||||
port->properties = NULL;
|
||||
port->info.props = NULL;
|
||||
port->info.n_params = 0;
|
||||
|
|
|
|||
|
|
@ -462,10 +462,8 @@ static void impl_destroy(struct impl *impl)
|
|||
pw_core_disconnect(impl->core);
|
||||
if (impl->aec)
|
||||
echo_cancel_destroy(impl->aec_info, impl->aec);
|
||||
if (impl->source_props)
|
||||
pw_properties_free(impl->source_props);
|
||||
if (impl->sink_props)
|
||||
pw_properties_free(impl->sink_props);
|
||||
pw_properties_free(impl->source_props);
|
||||
pw_properties_free(impl->sink_props);
|
||||
pw_work_queue_cancel(impl->work, impl, SPA_ID_INVALID);
|
||||
free(impl);
|
||||
}
|
||||
|
|
@ -647,8 +645,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
impl_destroy(impl);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1633,10 +1633,8 @@ static void impl_destroy(struct impl *impl)
|
|||
pw_stream_destroy(impl->playback);
|
||||
if (impl->core && impl->do_disconnect)
|
||||
pw_core_disconnect(impl->core);
|
||||
if (impl->capture_props)
|
||||
pw_properties_free(impl->capture_props);
|
||||
if (impl->playback_props)
|
||||
pw_properties_free(impl->playback_props);
|
||||
pw_properties_free(impl->capture_props);
|
||||
pw_properties_free(impl->playback_props);
|
||||
pw_work_queue_cancel(impl->work, impl, SPA_ID_INVALID);
|
||||
graph_free(&impl->graph);
|
||||
free(impl);
|
||||
|
|
@ -1818,8 +1816,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
impl_destroy(impl);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -447,8 +447,7 @@ error_link_register:
|
|||
pw_resource_errorf_id(resource, new_id, res, NAME": can't register link: %s", spa_strerror(res));
|
||||
goto error_exit;
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -307,10 +307,8 @@ static void impl_destroy(struct impl *impl)
|
|||
pw_stream_destroy(impl->playback);
|
||||
if (impl->core && impl->do_disconnect)
|
||||
pw_core_disconnect(impl->core);
|
||||
if (impl->capture_props)
|
||||
pw_properties_free(impl->capture_props);
|
||||
if (impl->playback_props)
|
||||
pw_properties_free(impl->playback_props);
|
||||
pw_properties_free(impl->capture_props);
|
||||
pw_properties_free(impl->playback_props);
|
||||
pw_work_queue_cancel(impl->work, impl, SPA_ID_INVALID);
|
||||
free(impl);
|
||||
}
|
||||
|
|
@ -473,8 +471,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
impl_destroy(impl);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,8 +110,7 @@ static void module_destroy(void *data)
|
|||
|
||||
spa_dbus_connection_destroy(impl->conn);
|
||||
|
||||
if (impl->properties)
|
||||
pw_properties_free(impl->properties);
|
||||
pw_properties_free(impl->properties);
|
||||
|
||||
free(impl);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -332,8 +332,7 @@ static void module_destroy(void *data)
|
|||
|
||||
spa_hook_remove(&impl->module_listener);
|
||||
|
||||
if (impl->properties)
|
||||
pw_properties_free(impl->properties);
|
||||
pw_properties_free(impl->properties);
|
||||
|
||||
free(impl);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -400,8 +400,7 @@ struct format_info {
|
|||
|
||||
static void format_info_clear(struct format_info *info)
|
||||
{
|
||||
if (info->props)
|
||||
pw_properties_free(info->props);
|
||||
pw_properties_free(info->props);
|
||||
spa_zero(*info);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -194,8 +194,7 @@ static void object_destroy(struct object *o)
|
|||
m->this.n_objects--;
|
||||
if (o->this.proxy)
|
||||
pw_proxy_destroy(o->this.proxy);
|
||||
if (o->this.props)
|
||||
pw_properties_free(o->this.props);
|
||||
pw_properties_free(o->this.props);
|
||||
if (o->this.message_object_path)
|
||||
free(o->this.message_object_path);
|
||||
clear_params(&o->this.param_list, SPA_ID_INVALID);
|
||||
|
|
|
|||
|
|
@ -83,8 +83,7 @@ static void module_free(struct module *module)
|
|||
pw_work_queue_cancel(impl->work_queue, module, SPA_ID_INVALID);
|
||||
free((char*)module->name);
|
||||
free((char*)module->args);
|
||||
if (module->props)
|
||||
pw_properties_free(module->props);
|
||||
pw_properties_free(module->props);
|
||||
free(module);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -461,8 +461,7 @@ struct module *create_module_combine_sink(struct impl *impl, const char *argumen
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
if (sink_names)
|
||||
pw_free_strv(sink_names);
|
||||
errno = -res;
|
||||
|
|
|
|||
|
|
@ -233,12 +233,9 @@ struct module *create_module_ladspa_sink(struct impl *impl, const char *argument
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (playback_props)
|
||||
pw_properties_free(playback_props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(playback_props);
|
||||
pw_properties_free(capture_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -233,12 +233,9 @@ struct module *create_module_ladspa_source(struct impl *impl, const char *argume
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (playback_props)
|
||||
pw_properties_free(playback_props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(playback_props);
|
||||
pw_properties_free(capture_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -236,12 +236,9 @@ struct module *create_module_loopback(struct impl *impl, const char *argument)
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (playback_props)
|
||||
pw_properties_free(playback_props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(playback_props);
|
||||
pw_properties_free(capture_props);
|
||||
errno = -res;
|
||||
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -127,8 +127,7 @@ struct module *create_module_native_protocol_tcp(struct impl *impl, const char *
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,8 +203,7 @@ struct module *create_module_null_sink(struct impl *impl, const char *argument)
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,8 +189,7 @@ static int module_pipesink_unload(struct client *client, struct module *module)
|
|||
|
||||
pw_log_info("unload module %p id:%u name:%s", module, module->idx, module->name);
|
||||
|
||||
if (d->capture_props != NULL)
|
||||
pw_properties_free(d->capture_props);
|
||||
pw_properties_free(d->capture_props);
|
||||
if (d->capture != NULL)
|
||||
pw_stream_destroy(d->capture);
|
||||
if (d->core != NULL)
|
||||
|
|
@ -321,10 +320,8 @@ struct module *create_module_pipe_sink(struct impl *impl, const char *argument)
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(capture_props);
|
||||
if (filename) {
|
||||
if (do_unlink_fifo)
|
||||
unlink(filename);
|
||||
|
|
|
|||
|
|
@ -229,12 +229,9 @@ struct module *create_module_remap_sink(struct impl *impl, const char *argument)
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (playback_props)
|
||||
pw_properties_free(playback_props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(playback_props);
|
||||
pw_properties_free(capture_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -229,12 +229,9 @@ struct module *create_module_remap_source(struct impl *impl, const char *argumen
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (playback_props)
|
||||
pw_properties_free(playback_props);
|
||||
if (capture_props)
|
||||
pw_properties_free(capture_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(playback_props);
|
||||
pw_properties_free(capture_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,10 +187,8 @@ struct module *create_module_simple_protocol_tcp(struct impl *impl, const char *
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (module_props)
|
||||
pw_properties_free(module_props);
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(module_props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,10 +214,8 @@ struct module *create_module_tunnel_sink(struct impl *impl, const char *argument
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (stream_props)
|
||||
pw_properties_free(stream_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(stream_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,10 +214,8 @@ struct module *create_module_tunnel_source(struct impl *impl, const char *argume
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
if (stream_props)
|
||||
pw_properties_free(stream_props);
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(stream_props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -131,8 +131,7 @@ struct module *create_module_zeroconf_discover(struct impl *impl, const char *ar
|
|||
|
||||
return module;
|
||||
out:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,8 +134,7 @@ static void sample_free(struct sample *sample)
|
|||
|
||||
if (sample->index != SPA_ID_INVALID)
|
||||
pw_map_remove(&impl->samples, sample->index);
|
||||
if (sample->props)
|
||||
pw_properties_free(sample->props);
|
||||
pw_properties_free(sample->props);
|
||||
free(sample->buffer);
|
||||
free(sample);
|
||||
}
|
||||
|
|
@ -968,8 +967,7 @@ static void stream_free(struct stream *stream)
|
|||
|
||||
if (stream->buffer)
|
||||
free(stream->buffer);
|
||||
if (stream->props)
|
||||
pw_properties_free(stream->props);
|
||||
pw_properties_free(stream->props);
|
||||
free(stream);
|
||||
}
|
||||
|
||||
|
|
@ -1982,8 +1980,7 @@ error_invalid:
|
|||
res = -EINVAL;
|
||||
goto error;
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
if (stream)
|
||||
stream_free(stream);
|
||||
return res;
|
||||
|
|
@ -2234,8 +2231,7 @@ error_invalid:
|
|||
res = -EINVAL;
|
||||
goto error;
|
||||
error:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
if (stream)
|
||||
stream_free(stream);
|
||||
return res;
|
||||
|
|
@ -2453,8 +2449,7 @@ error_toolarge:
|
|||
res = -EOVERFLOW;
|
||||
goto error;
|
||||
error:
|
||||
if (props != NULL)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
if (stream)
|
||||
stream_free(stream);
|
||||
return res;
|
||||
|
|
@ -2500,8 +2495,7 @@ static int do_finish_upload_stream(struct client *client, uint32_t command, uint
|
|||
|
||||
event = SUBSCRIPTION_EVENT_NEW;
|
||||
} else {
|
||||
if (sample->props)
|
||||
pw_properties_free(sample->props);
|
||||
pw_properties_free(sample->props);
|
||||
free(sample->buffer);
|
||||
event = SUBSCRIPTION_EVENT_CHANGE;
|
||||
}
|
||||
|
|
@ -2779,8 +2773,7 @@ error_noent:
|
|||
res = -ENOENT;
|
||||
goto error;
|
||||
error:
|
||||
if (props != NULL)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
@ -3447,8 +3440,7 @@ static int do_update_proplist(struct client *client, uint32_t command, uint32_t
|
|||
}
|
||||
res = reply_simple_ack(client, tag);
|
||||
exit:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
return res;
|
||||
|
||||
error_protocol:
|
||||
|
|
@ -3515,8 +3507,7 @@ static int do_remove_proplist(struct client *client, uint32_t command, uint32_t
|
|||
}
|
||||
res = reply_simple_ack(client, tag);
|
||||
exit:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
return res;
|
||||
|
||||
error_protocol:
|
||||
|
|
@ -6693,8 +6684,7 @@ error_free:
|
|||
free(impl);
|
||||
|
||||
error_exit:
|
||||
if (props != NULL)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
|
||||
if (res < 0)
|
||||
errno = -res;
|
||||
|
|
|
|||
|
|
@ -215,8 +215,7 @@ static struct sample_play *sample_play_new(struct pw_core *core,
|
|||
error_cleanup:
|
||||
pw_stream_destroy(p->stream);
|
||||
error_free:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
free(p);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -525,8 +525,7 @@ on_connect(void *data, int fd, uint32_t mask)
|
|||
return;
|
||||
error:
|
||||
pw_log_error(NAME" %p: failed to create client: %m", impl);
|
||||
if (props != NULL)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
if (client != NULL)
|
||||
client_free(client);
|
||||
return;
|
||||
|
|
@ -653,8 +652,7 @@ static void impl_free(struct impl *impl)
|
|||
spa_hook_remove(&impl->module_listener);
|
||||
spa_list_consume(s, &impl->server_list, link)
|
||||
server_free(s);
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->props);
|
||||
free(impl);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -646,10 +646,8 @@ static void impl_destroy(struct impl *impl)
|
|||
if (impl->core && impl->do_disconnect)
|
||||
pw_core_disconnect(impl->core);
|
||||
|
||||
if (impl->stream_props)
|
||||
pw_properties_free(impl->stream_props);
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->stream_props);
|
||||
pw_properties_free(impl->props);
|
||||
|
||||
pw_work_queue_cancel(impl->work, impl, SPA_ID_INVALID);
|
||||
free(impl->buffer);
|
||||
|
|
|
|||
|
|
@ -613,8 +613,7 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
|
|||
return 0;
|
||||
|
||||
error:
|
||||
if (impl->props)
|
||||
pw_properties_free(impl->props);
|
||||
pw_properties_free(impl->props);
|
||||
if (impl->system_bus)
|
||||
pw_rtkit_bus_free(impl->system_bus);
|
||||
free(impl);
|
||||
|
|
|
|||
|
|
@ -120,8 +120,7 @@ static int client_endpoint_stream_update(void *object,
|
|||
: 0;
|
||||
|
||||
no_mem:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
free(stream);
|
||||
pw_log_error(NAME" %p: cannot update stream: no memory", this);
|
||||
pw_resource_errorf(this->resource, -ENOMEM,
|
||||
|
|
@ -204,8 +203,7 @@ static void *create_object(void *data,
|
|||
return this;
|
||||
|
||||
no_mem:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
if (this && this->resource)
|
||||
pw_resource_destroy(this->resource);
|
||||
free(this);
|
||||
|
|
|
|||
|
|
@ -333,6 +333,5 @@ void endpoint_stream_clear(struct endpoint_stream *this)
|
|||
free(this->info.link_params);
|
||||
free(this->info.params);
|
||||
|
||||
if (this->props)
|
||||
pw_properties_free(this->props);
|
||||
pw_properties_free(this->props);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -365,6 +365,5 @@ void endpoint_clear(struct endpoint *this)
|
|||
free(this->info.media_class);
|
||||
free(this->info.params);
|
||||
|
||||
if (this->props)
|
||||
pw_properties_free(this->props);
|
||||
pw_properties_free(this->props);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -119,8 +119,7 @@ static int client_session_link_update(void *object,
|
|||
: 0;
|
||||
|
||||
no_mem:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
free(link);
|
||||
pw_log_error(NAME" %p: cannot update link: no memory", this);
|
||||
pw_resource_error(this->resource, -ENOMEM,
|
||||
|
|
@ -203,8 +202,7 @@ static void *create_object(void *data,
|
|||
return this;
|
||||
|
||||
no_mem:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
if (this && this->resource)
|
||||
pw_resource_destroy(this->resource);
|
||||
free(this);
|
||||
|
|
|
|||
|
|
@ -350,6 +350,5 @@ void endpoint_link_clear(struct endpoint_link *this)
|
|||
free(this->info.error);
|
||||
free(this->info.params);
|
||||
|
||||
if (this->props)
|
||||
pw_properties_free(this->props);
|
||||
pw_properties_free(this->props);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,6 +325,5 @@ void session_clear(struct session *this)
|
|||
|
||||
free(this->info.params);
|
||||
|
||||
if (this->props)
|
||||
pw_properties_free(this->props);
|
||||
pw_properties_free(this->props);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,8 +171,7 @@ static void impl_free(struct impl *impl)
|
|||
avahi_client_free(impl->client);
|
||||
if (impl->avahi_poll)
|
||||
pw_avahi_poll_free(impl->avahi_poll);
|
||||
if (impl->properties)
|
||||
pw_properties_free(impl->properties);
|
||||
pw_properties_free(impl->properties);
|
||||
pw_work_queue_cancel(impl->work, impl, SPA_ID_INVALID);
|
||||
free(impl);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -180,8 +180,7 @@ error_bind:
|
|||
goto error_exit;
|
||||
|
||||
error_exit_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
error_exit:
|
||||
free(factory_name);
|
||||
errno = -res;
|
||||
|
|
|
|||
|
|
@ -179,8 +179,7 @@ error_bind:
|
|||
goto error_exit;
|
||||
|
||||
error_exit_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
error_exit:
|
||||
errno = -res;
|
||||
return NULL;
|
||||
|
|
|
|||
|
|
@ -158,7 +158,6 @@ error_exit_unload:
|
|||
pw_unload_spa_handle(handle);
|
||||
error_exit:
|
||||
errno = -res;
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -281,8 +281,7 @@ struct pw_impl_node *pw_spa_node_load(struct pw_context *context,
|
|||
error_exit_unload:
|
||||
pw_unload_spa_handle(handle);
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -386,10 +386,8 @@ error_free_loop:
|
|||
error_free:
|
||||
free(this);
|
||||
error_cleanup:
|
||||
if (conf)
|
||||
pw_properties_free(conf);
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(conf);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -391,8 +391,7 @@ error_proxy:
|
|||
exit_free:
|
||||
free(p);
|
||||
exit_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1056,8 +1056,7 @@ filter_new(struct pw_context *context, const char *name,
|
|||
error_properties:
|
||||
free(impl);
|
||||
error_cleanup:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1124,8 +1123,7 @@ pw_filter_new_simple(struct pw_loop *loop,
|
|||
error_cleanup:
|
||||
if (context)
|
||||
pw_context_destroy(context);
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1509,8 +1507,7 @@ error_free:
|
|||
clear_params(impl, p, SPA_ID_INVALID);
|
||||
free(p);
|
||||
error_cleanup:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -110,8 +110,7 @@ pw_global_new(struct pw_context *context,
|
|||
error_free:
|
||||
free(impl);
|
||||
error_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -447,8 +447,7 @@ error_clear_array:
|
|||
error_free:
|
||||
free(impl);
|
||||
error_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -510,8 +509,7 @@ int pw_impl_client_register(struct pw_impl_client *client,
|
|||
return 0;
|
||||
|
||||
error_existed:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -463,8 +463,7 @@ struct pw_impl_core *pw_context_create_core(struct pw_context *context,
|
|||
return this;
|
||||
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
free(this);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
|
|
@ -652,8 +651,7 @@ error_existed:
|
|||
res = -EEXIST;
|
||||
goto error_exit;
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -185,8 +185,7 @@ struct pw_impl_device *pw_context_create_device(struct pw_context *context,
|
|||
error_free:
|
||||
free(impl);
|
||||
error_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -602,8 +601,7 @@ int pw_impl_device_register(struct pw_impl_device *device,
|
|||
return 0;
|
||||
|
||||
error_existed:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,8 +73,7 @@ struct pw_impl_factory *pw_context_create_factory(struct pw_context *context,
|
|||
return this;
|
||||
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -218,8 +217,7 @@ int pw_impl_factory_register(struct pw_impl_factory *factory,
|
|||
return 0;
|
||||
|
||||
error_existed:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1200,8 +1200,7 @@ error_no_io:
|
|||
error_free:
|
||||
free(impl);
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1278,8 +1277,7 @@ int pw_impl_link_register(struct pw_impl_link *link,
|
|||
return 0;
|
||||
|
||||
error_existed:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -291,8 +291,7 @@ error_free_filename:
|
|||
if (filename)
|
||||
free(filename);
|
||||
error_cleanup:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -718,8 +718,7 @@ int pw_impl_node_register(struct pw_impl_node *this,
|
|||
return 0;
|
||||
|
||||
error_existed:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
|
|
@ -1235,8 +1234,7 @@ error_clean:
|
|||
spa_system_close(this->context->data_system, this->source.fd);
|
||||
free(impl);
|
||||
error_exit:
|
||||
if (properties)
|
||||
pw_properties_free(properties);
|
||||
pw_properties_free(properties);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,8 +186,7 @@ void pw_mempool_destroy(struct pw_mempool *pool)
|
|||
spa_hook_list_clean(&impl->listener_list);
|
||||
|
||||
pw_map_clear(&impl->map);
|
||||
if (pool->props)
|
||||
pw_properties_free(pool->props);
|
||||
pw_properties_free(pool->props);
|
||||
free(impl);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -377,7 +377,12 @@ int pw_properties_add_keys(struct pw_properties *props,
|
|||
SPA_EXPORT
|
||||
void pw_properties_free(struct pw_properties *properties)
|
||||
{
|
||||
struct properties *impl = SPA_CONTAINER_OF(properties, struct properties, this);
|
||||
struct properties *impl;
|
||||
|
||||
if (properties == NULL)
|
||||
return;
|
||||
|
||||
impl = SPA_CONTAINER_OF(properties, struct properties, this);
|
||||
pw_properties_clear(properties);
|
||||
pw_array_clear(&impl->items);
|
||||
free(impl);
|
||||
|
|
|
|||
|
|
@ -1304,12 +1304,10 @@ stream_new(struct pw_context *context, const char *name,
|
|||
return impl;
|
||||
|
||||
error_properties:
|
||||
if (impl->port_props)
|
||||
pw_properties_free(impl->port_props);
|
||||
pw_properties_free(impl->port_props);
|
||||
free(impl);
|
||||
error_cleanup:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1375,8 +1373,7 @@ pw_stream_new_simple(struct pw_loop *loop,
|
|||
error_cleanup:
|
||||
if (context)
|
||||
pw_context_destroy(context);
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
errno = -res;
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1794,8 +1791,7 @@ error_proxy:
|
|||
goto exit_cleanup;
|
||||
|
||||
exit_cleanup:
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1753,8 +1753,7 @@ error_no_context:
|
|||
error_no_props:
|
||||
error_no_main_loop:
|
||||
error_bad_file:
|
||||
if (data.props)
|
||||
pw_properties_free(data.props);
|
||||
pw_properties_free(data.props);
|
||||
if (data.file)
|
||||
sf_close(data.file);
|
||||
if (data.midi.file)
|
||||
|
|
|
|||
|
|
@ -356,8 +356,7 @@ static int destroy_global(void *obj, void *data)
|
|||
return 0;
|
||||
|
||||
pw_map_remove(&global->rd->globals, global->id);
|
||||
if (global->properties)
|
||||
pw_properties_free(global->properties);
|
||||
pw_properties_free(global->properties);
|
||||
free(global->type);
|
||||
free(global);
|
||||
return 0;
|
||||
|
|
@ -931,8 +930,7 @@ static const struct pw_device_events device_events = {
|
|||
static void session_info_free(struct pw_session_info *info)
|
||||
{
|
||||
free(info->params);
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
free(info);
|
||||
}
|
||||
|
||||
|
|
@ -955,8 +953,7 @@ static void session_event_info(void *object,
|
|||
info->n_params * sizeof(struct spa_param_info));
|
||||
}
|
||||
if (update->change_mask & PW_ENDPOINT_CHANGE_MASK_PROPS) {
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
info->props =
|
||||
(struct spa_dict *) pw_properties_new_dict (update->props);
|
||||
}
|
||||
|
|
@ -980,8 +977,7 @@ static void endpoint_info_free(struct pw_endpoint_info *info)
|
|||
free(info->name);
|
||||
free(info->media_class);
|
||||
free(info->params);
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
free(info);
|
||||
}
|
||||
|
||||
|
|
@ -1012,8 +1008,7 @@ static void endpoint_event_info(void *object,
|
|||
info->n_params * sizeof(struct spa_param_info));
|
||||
}
|
||||
if (update->change_mask & PW_ENDPOINT_CHANGE_MASK_PROPS) {
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
info->props =
|
||||
(struct spa_dict *) pw_properties_new_dict (update->props);
|
||||
}
|
||||
|
|
@ -1036,8 +1031,7 @@ static void endpoint_stream_info_free(struct pw_endpoint_stream_info *info)
|
|||
{
|
||||
free(info->name);
|
||||
free(info->params);
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
free(info);
|
||||
}
|
||||
|
||||
|
|
@ -1062,8 +1056,7 @@ static void endpoint_stream_event_info(void *object,
|
|||
info->n_params * sizeof(struct spa_param_info));
|
||||
}
|
||||
if (update->change_mask & PW_ENDPOINT_STREAM_CHANGE_MASK_PROPS) {
|
||||
if (info->props)
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
pw_properties_free ((struct pw_properties *)info->props);
|
||||
info->props =
|
||||
(struct spa_dict *) pw_properties_new_dict (update->props);
|
||||
}
|
||||
|
|
@ -1295,8 +1288,7 @@ static bool do_create_device(struct data *data, const char *cmd, char *args, cha
|
|||
props ? &props->dict : NULL,
|
||||
sizeof(struct proxy_data));
|
||||
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
|
||||
pd = pw_proxy_get_user_data(proxy);
|
||||
pd->rd = rd;
|
||||
|
|
@ -1335,8 +1327,7 @@ static bool do_create_node(struct data *data, const char *cmd, char *args, char
|
|||
props ? &props->dict : NULL,
|
||||
sizeof(struct proxy_data));
|
||||
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
|
||||
pd = pw_proxy_get_user_data(proxy);
|
||||
pd->rd = rd;
|
||||
|
|
@ -1407,8 +1398,7 @@ static bool do_create_link(struct data *data, const char *cmd, char *args, char
|
|||
props ? &props->dict : NULL,
|
||||
sizeof(struct proxy_data));
|
||||
|
||||
if (props)
|
||||
pw_properties_free(props);
|
||||
pw_properties_free(props);
|
||||
|
||||
pd = pw_proxy_get_user_data(proxy);
|
||||
pd->rd = rd;
|
||||
|
|
|
|||
|
|
@ -609,8 +609,7 @@ static void removed_proxy(void *user_data)
|
|||
static void destroy_proxy(void *user_data)
|
||||
{
|
||||
struct global *g = user_data;
|
||||
if (g->props)
|
||||
pw_properties_free(g->props);
|
||||
pw_properties_free(g->props);
|
||||
if (g->info)
|
||||
g->info_destroy(g->info);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,8 +198,7 @@ static void object_destroy(struct object *o)
|
|||
spa_list_remove(&o->link);
|
||||
if (o->proxy)
|
||||
pw_proxy_destroy(o->proxy);
|
||||
if (o->props)
|
||||
pw_properties_free(o->props);
|
||||
pw_properties_free(o->props);
|
||||
clear_params(&o->param_list, SPA_ID_INVALID);
|
||||
clear_params(&o->pending_list, SPA_ID_INVALID);
|
||||
free(o->type);
|
||||
|
|
@ -1290,8 +1289,7 @@ static void registry_event_global(void *data, uint32_t id,
|
|||
|
||||
bind_failed:
|
||||
pw_log_error("can't bind object for %u %s/%d: %m", id, type, version);
|
||||
if (o->props)
|
||||
pw_properties_free(o->props);
|
||||
pw_properties_free(o->props);
|
||||
free(o);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -251,10 +251,8 @@ exit:
|
|||
pw_context_destroy(data.context);
|
||||
if (data.loop)
|
||||
pw_main_loop_destroy(data.loop);
|
||||
if (data.capture_props)
|
||||
pw_properties_free(data.capture_props);
|
||||
if (data.playback_props)
|
||||
pw_properties_free(data.playback_props);
|
||||
pw_properties_free(data.capture_props);
|
||||
pw_properties_free(data.playback_props);
|
||||
pw_deinit();
|
||||
|
||||
return res;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue