Free the event queue on cleanup.
authorPeter Hutterer <peter.hutterer@who-t.net>
Fri, 31 May 2013 05:24:39 +0000 (15:24 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Fri, 31 May 2013 05:24:39 +0000 (15:24 +1000)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
libevdev/libevdev-int.h
libevdev/libevdev.c

index 7b28884f12ad258857e431271c422e0e099bd3d7..492608a5023526938a42367bc87c03fbbc2eaa95 100644 (file)
@@ -168,6 +168,14 @@ queue_alloc(struct libevdev *dev, int size)
        return 0;
 }
 
+static inline void
+queue_free(struct libevdev *dev)
+{
+       free(dev->queue);
+       dev->queue_size = 0;
+       dev->queue_next = 0;
+}
+
 static inline int
 queue_num_elements(struct libevdev *dev)
 {
index 7a1079244a8b9d9003873e41958e2e6ab99d8aeb..81bee6031a3a7b80dccc4289dcc12a66c47a9e98 100644 (file)
@@ -165,6 +165,7 @@ libevdev_new(int fd)
 void
 libevdev_free(struct libevdev *dev)
 {
+       queue_free(dev);
        free(dev);
 }