summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/udev.c14
-rw-r--r--dix/inpututils.c16
-rw-r--r--include/input.h12
-rw-r--r--test/input.c56
4 files changed, 51 insertions, 47 deletions
diff --git a/config/udev.c b/config/udev.c
index 436b8f038..68ed34843 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -242,16 +242,16 @@ device_added(struct udev_device *udev_device)
free(config_info);
input_option_free_list(&input_options);
- free((void *) attrs.usb_id);
- free((void *) attrs.pnp_id);
- free((void *) attrs.product);
- free((void *) attrs.device);
- free((void *) attrs.vendor);
+ free(attrs.usb_id);
+ free(attrs.pnp_id);
+ free(attrs.product);
+ free(attrs.device);
+ free(attrs.vendor);
if (attrs.tags) {
- const char **tag = attrs.tags;
+ char **tag = attrs.tags;
while (*tag) {
- free((void *) *tag);
+ free(*tag);
tag++;
}
free(attrs.tags);
diff --git a/dix/inpututils.c b/dix/inpututils.c
index 3e1d75fec..a10a7c761 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -351,7 +351,7 @@ DuplicateInputAttributes(InputAttributes * attrs)
{
InputAttributes *new_attr;
int ntags = 0;
- const char **tags, **new_tags;
+ char **tags, **new_tags;
if (!attrs)
return NULL;
@@ -403,20 +403,20 @@ DuplicateInputAttributes(InputAttributes * attrs)
void
FreeInputAttributes(InputAttributes * attrs)
{
- const char **tags;
+ char **tags;
if (!attrs)
return;
- free((void *) attrs->product);
- free((void *) attrs->vendor);
- free((void *) attrs->device);
- free((void *) attrs->pnp_id);
- free((void *) attrs->usb_id);
+ free(attrs->product);
+ free(attrs->vendor);
+ free(attrs->device);
+ free(attrs->pnp_id);
+ free(attrs->usb_id);
if ((tags = attrs->tags))
while (*tags)
- free((void *) *tags++);
+ free(*tags++);
free(attrs->tags);
free(attrs);
diff --git a/include/input.h b/include/input.h
index 455963f6a..6f047ee9c 100644
--- a/include/input.h
+++ b/include/input.h
@@ -221,12 +221,12 @@ typedef struct _InputOption InputOption;
typedef struct _XI2Mask XI2Mask;
typedef struct _InputAttributes {
- const char *product;
- const char *vendor;
- const char *device;
- const char *pnp_id;
- const char *usb_id;
- const char **tags; /* null-terminated */
+ char *product;
+ char *vendor;
+ char *device;
+ char *pnp_id;
+ char *usb_id;
+ char **tags; /* null-terminated */
uint32_t flags;
} InputAttributes;
diff --git a/test/input.c b/test/input.c
index aaa7a69d3..5813e6dc9 100644
--- a/test/input.c
+++ b/test/input.c
@@ -1101,7 +1101,7 @@ xi_unregister_handlers(void)
static void
cmp_attr_fields(InputAttributes * attr1, InputAttributes * attr2)
{
- const char **tags1, **tags2;
+ char **tags1, **tags2;
assert(attr1 && attr2);
assert(attr1 != attr2);
@@ -1180,50 +1180,54 @@ cmp_attr_fields(InputAttributes * attr1, InputAttributes * attr2)
static void
dix_input_attributes(void)
{
- InputAttributes orig = { 0 };
+ InputAttributes *orig;
InputAttributes *new;
- const char *tags[4] = { "tag1", "tag2", "tag2", NULL };
new = DuplicateInputAttributes(NULL);
assert(!new);
- new = DuplicateInputAttributes(&orig);
- assert(memcmp(&orig, new, sizeof(InputAttributes)) == 0);
+ orig = calloc(1, sizeof(InputAttributes));
+ assert(orig);
- orig.product = "product name";
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ new = DuplicateInputAttributes(orig);
+ assert(memcmp(orig, new, sizeof(InputAttributes)) == 0);
+
+ orig->product = xnfstrdup("product name");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.vendor = "vendor name";
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->vendor = xnfstrdup("vendor name");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.device = "device path";
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->device = xnfstrdup("device path");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.pnp_id = "PnPID";
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->pnp_id = xnfstrdup("PnPID");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.usb_id = "USBID";
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->usb_id = xnfstrdup("USBID");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.flags = 0xF0;
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->flags = 0xF0;
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
- orig.tags = tags;
- new = DuplicateInputAttributes(&orig);
- cmp_attr_fields(&orig, new);
+ orig->tags = xstrtokenize("tag1 tag2 tag3", " ");
+ new = DuplicateInputAttributes(orig);
+ cmp_attr_fields(orig, new);
FreeInputAttributes(new);
+
+ FreeInputAttributes(orig);
}
static void