[rtems commit] rbheap: Avoid internal API

Sebastian Huber sebh at rtems.org
Mon Aug 31 08:41:20 UTC 2015


Module:    rtems
Branch:    master
Commit:    c72f1322d2fe019b721a1b85e46160a006dd8ad2
Changeset: http://git.rtems.org/rtems/commit/?id=c72f1322d2fe019b721a1b85e46160a006dd8ad2

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Aug 18 06:05:05 2015 +0200

rbheap: Avoid internal API

---

 cpukit/sapi/src/rbheap.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/cpukit/sapi/src/rbheap.c b/cpukit/sapi/src/rbheap.c
index 049a64d..6ad451c 100644
--- a/cpukit/sapi/src/rbheap.c
+++ b/cpukit/sapi/src/rbheap.c
@@ -210,13 +210,17 @@ static rtems_rbheap_chunk *find(rtems_rbtree_control *chunk_tree, uintptr_t key)
   );
 }
 
-static rtems_rbheap_chunk *get_next(
-  const rtems_rbheap_chunk *chunk,
-  RBTree_Direction dir
-)
+static rtems_rbheap_chunk *pred(const rtems_rbheap_chunk *chunk)
 {
   return rtems_rbheap_chunk_of_node(
-    _RBTree_Next(&chunk->tree_node, dir)
+    rtems_rbtree_predecessor(&chunk->tree_node)
+  );
+}
+
+static rtems_rbheap_chunk *succ(const rtems_rbheap_chunk *chunk)
+{
+  return rtems_rbheap_chunk_of_node(
+    rtems_rbtree_successor(&chunk->tree_node)
   );
 }
 
@@ -253,12 +257,9 @@ rtems_status_code rtems_rbheap_free(rtems_rbheap_control *control, void *ptr)
 
     if (chunk != NULL_PAGE) {
       if (!rtems_rbheap_is_chunk_free(chunk)) {
-        rtems_rbheap_chunk *pred = get_next(chunk, RBT_LEFT);
-        rtems_rbheap_chunk *succ = get_next(chunk, RBT_RIGHT);
-
-        check_and_merge(free_chain, chunk_tree, chunk, succ);
+        check_and_merge(free_chain, chunk_tree, chunk, succ(chunk));
         add_to_chain(free_chain, chunk);
-        check_and_merge(free_chain, chunk_tree, chunk, pred);
+        check_and_merge(free_chain, chunk_tree, chunk, pred(chunk));
       } else {
         sc = RTEMS_INCORRECT_STATE;
       }



More information about the vc mailing list