core: simplify gpiod_chip_close()
authorBartosz Golaszewski <bartekgola@gmail.com>
Sat, 28 Jan 2017 16:32:23 +0000 (17:32 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Sat, 28 Jan 2017 16:32:23 +0000 (17:32 +0100)
Use a temporary pointer for GPIO lines and helpers for reading the
line state.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
src/lib/core.c

index 494a3b444e5ff109e4bc292728b8e1ef0ed46b74..d1fe38c167bc0c9d8c0ef8a6b4c4d8c54d75999b 100644 (file)
@@ -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);