Introduce udev object cleanup functions

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2013-10-13 17:56:55 -04:00
parent b506291ff1
commit 1ca208fb4f
18 changed files with 222 additions and 352 deletions
+4 -4
View File
@@ -29,6 +29,7 @@
#include <sys/epoll.h>
#include "libudev.h"
#include "udev-util.h"
#include "util.h"
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
@@ -117,7 +118,7 @@ static void print_device(struct udev_device *device)
static int test_device(struct udev *udev, const char *syspath)
{
struct udev_device *device;
_cleanup_udev_device_unref_ struct udev_device *device;
printf("looking at device: %s\n", syspath);
device = udev_device_new_from_syspath(udev, syspath);
@@ -126,13 +127,13 @@ static int test_device(struct udev *udev, const char *syspath)
return -1;
}
print_device(device);
udev_device_unref(device);
return 0;
}
static int test_device_parents(struct udev *udev, const char *syspath)
{
struct udev_device *device;
_cleanup_udev_device_unref_ struct udev_device *device;
struct udev_device *device_parent;
printf("looking at device: %s\n", syspath);
@@ -153,7 +154,6 @@ static int test_device_parents(struct udev *udev, const char *syspath)
print_device(device_parent);
device_parent = udev_device_get_parent(device_parent);
} while (device_parent != NULL);
udev_device_unref(device);
return 0;
}
+9 -12
View File
@@ -34,6 +34,7 @@
#include "missing.h"
#include "udev.h"
#include "udev-util.h"
void udev_main_log(struct udev *udev, int priority,
const char *file, int line, const char *fn,
@@ -82,10 +83,10 @@ out:
int main(int argc, char *argv[])
{
struct udev *udev;
struct udev_event *event = NULL;
struct udev_device *dev = NULL;
struct udev_rules *rules = NULL;
_cleanup_udev_unref_ struct udev *udev = NULL;
_cleanup_udev_event_unref_ struct udev_event *event = NULL;
_cleanup_udev_device_unref_ struct udev_device *dev = NULL;
_cleanup_udev_rules_unref_ struct udev_rules *rules = NULL;
char syspath[UTIL_PATH_SIZE];
const char *devpath;
const char *action;
@@ -98,7 +99,8 @@ int main(int argc, char *argv[])
udev = udev_new();
if (udev == NULL)
exit(EXIT_FAILURE);
return EXIT_FAILURE;
log_debug("version %s\n", VERSION);
label_init("/dev");
@@ -160,12 +162,7 @@ int main(int argc, char *argv[])
out:
if (event != NULL && event->fd_signal >= 0)
close(event->fd_signal);
udev_event_unref(event);
udev_device_unref(dev);
udev_rules_unref(rules);
label_finish();
udev_unref(udev);
if (err != 0)
return EXIT_FAILURE;
return EXIT_SUCCESS;
return err ? EXIT_FAILURE : EXIT_SUCCESS;
}