From 270f86f2985ffbf55527bdae2ba2bc3870540fed Mon Sep 17 00:00:00 2001 From: Jakub Pawlowski Date: Fri, 5 Feb 2016 15:48:29 -0800 Subject: [PATCH] Add list_back_node method to osi list Change-Id: I919ce97373701cbdea03b8228b3a90263d7ef180 --- osi/include/list.h | 4 ++++ osi/src/list.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/osi/include/list.h b/osi/include/list.h index 54daf99a8..a510178f5 100644 --- a/osi/include/list.h +++ b/osi/include/list.h @@ -48,6 +48,10 @@ void *list_front(const list_t *list); // be NULL or empty. void *list_back(const list_t *list); +// Returns the last node in the list without removing it. |list| may not +// be NULL or empty. +list_node_t *list_back_node(const list_t *list); + // Inserts |data| after |prev_node| in |list|. |data|, |list|, and |prev_node| // may not be NULL. This function does not make a copy of |data| so the pointer // must remain valid at least until the element is removed from the list or the diff --git a/osi/src/list.c b/osi/src/list.c index 79eb76fe1..94685794f 100644 --- a/osi/src/list.c +++ b/osi/src/list.c @@ -79,6 +79,13 @@ void *list_back(const list_t *list) { return list->tail->data; } +list_node_t *list_back_node(const list_t *list) { + assert(list != NULL); + assert(!list_is_empty(list)); + + return list->tail; +} + bool list_insert_after(list_t *list, list_node_t *prev_node, void *data) { assert(list != NULL); assert(prev_node != NULL); -- 2.11.0