path: split out creating a device into a helper function

No functional changes

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
Peter Hutterer 2014-11-19 15:26:40 +10:00
parent 8d24cd5304
commit 5f703f48b0

View file

@ -236,6 +236,37 @@ path_input_destroy(struct libinput *input)
}
static struct libinput_device *
path_create_device(struct libinput *libinput,
const char *path)
{
struct path_input *input = (struct path_input*)libinput;
struct path_device *dev;
struct libinput_device *device;
dev = zalloc(sizeof *dev);
if (!dev)
return NULL;
dev->path = strdup(path);
if (!dev->path) {
free(dev);
return NULL;
}
list_insert(&input->path_list, &dev->link);
device = path_device_enable(input, dev->path);
if (!device) {
list_remove(&dev->link);
free(dev->path);
free(dev);
}
return device;
}
static const struct libinput_interface_backend interface_backend = {
.resume = path_input_enable,
.suspend = path_input_disable,
@ -275,36 +306,12 @@ LIBINPUT_EXPORT struct libinput_device *
libinput_path_add_device(struct libinput *libinput,
const char *path)
{
struct path_input *input = (struct path_input*)libinput;
struct path_device *dev;
struct libinput_device *device;
if (libinput->interface_backend != &interface_backend) {
log_bug_client(libinput, "Mismatching backends.\n");
return NULL;
}
dev = zalloc(sizeof *dev);
if (!dev)
return NULL;
dev->path = strdup(path);
if (!dev->path) {
free(dev);
return NULL;
}
list_insert(&input->path_list, &dev->link);
device = path_device_enable(input, dev->path);
if (!device) {
list_remove(&dev->link);
free(dev->path);
free(dev);
}
return device;
return path_create_device(libinput, path);
}
LIBINPUT_EXPORT void