mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
device-factory: save factory_name for debug later
Make a copy of the factory_name, the properties it is inside are destroyed when the device can't be created and we still need the name for the debug message.
This commit is contained in:
parent
dd8573a5c2
commit
e98931023f
1 changed files with 8 additions and 3 deletions
|
|
@ -101,7 +101,8 @@ static void *create_object(void *_data,
|
||||||
struct factory_data *data = _data;
|
struct factory_data *data = _data;
|
||||||
struct pw_context *context = data->context;
|
struct pw_context *context = data->context;
|
||||||
struct pw_impl_device *device;
|
struct pw_impl_device *device;
|
||||||
const char *factory_name;
|
const char *str;
|
||||||
|
char *factory_name = NULL;
|
||||||
struct device_data *nd;
|
struct device_data *nd;
|
||||||
struct pw_impl_client *client;
|
struct pw_impl_client *client;
|
||||||
int res;
|
int res;
|
||||||
|
|
@ -109,8 +110,10 @@ static void *create_object(void *_data,
|
||||||
if (properties == NULL)
|
if (properties == NULL)
|
||||||
goto error_properties;
|
goto error_properties;
|
||||||
|
|
||||||
factory_name = pw_properties_get(properties, SPA_KEY_FACTORY_NAME);
|
if ((str = pw_properties_get(properties, SPA_KEY_FACTORY_NAME)) == NULL)
|
||||||
if (factory_name == NULL)
|
goto error_properties;
|
||||||
|
|
||||||
|
if ((factory_name = strdup(str)) == NULL)
|
||||||
goto error_properties;
|
goto error_properties;
|
||||||
|
|
||||||
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
pw_properties_setf(properties, PW_KEY_FACTORY_ID, "%d",
|
||||||
|
|
@ -154,6 +157,7 @@ static void *create_object(void *_data,
|
||||||
|
|
||||||
pw_resource_add_listener(bound_resource, &nd->resource_listener, &resource_events, nd);
|
pw_resource_add_listener(bound_resource, &nd->resource_listener, &resource_events, nd);
|
||||||
}
|
}
|
||||||
|
free(factory_name);
|
||||||
return device;
|
return device;
|
||||||
|
|
||||||
error_properties:
|
error_properties:
|
||||||
|
|
@ -175,6 +179,7 @@ error_bind:
|
||||||
pw_impl_device_destroy(device);
|
pw_impl_device_destroy(device);
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
error_exit:
|
error_exit:
|
||||||
|
free(factory_name);
|
||||||
errno = -res;
|
errno = -res;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue