From 94bc14058847847ff3ae623fe32dc1a16735ddd6 Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Sat, 28 Jan 2017 17:32:23 +0100 Subject: [PATCH] core: simplify gpiod_chip_close() Use a temporary pointer for GPIO lines and helpers for reading the line state. Signed-off-by: Bartosz Golaszewski --- src/lib/core.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/core.c b/src/lib/core.c index 494a3b4..d1fe38c 100644 --- a/src/lib/core.c +++ b/src/lib/core.c @@ -975,13 +975,16 @@ struct gpiod_chip * gpiod_chip_open_lookup(const char *descr) void gpiod_chip_close(struct gpiod_chip *chip) { + struct gpiod_line *line; unsigned int i; for (i = 0; i < chip->cinfo.lines; i++) { - if (chip->lines[i].state == LINE_TAKEN) - gpiod_line_release(&chip->lines[i]); - else if (chip->lines[i].state == LINE_EVENT) - gpiod_line_event_release(&chip->lines[i]); + line = &chip->lines[i]; + + if (line_get_state(line) == LINE_TAKEN) + gpiod_line_release(line); + else if (line_get_state(line) == LINE_EVENT) + gpiod_line_event_release(line); } close(chip->fd); -- 2.30.2