From 7ca254ade941c185b6f7aaea7f4da352ddf6061e Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Wed, 4 Apr 2018 22:39:46 +0200 Subject: [PATCH] B+TREE: Add _pop function. --- m-bptree.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/m-bptree.h b/m-bptree.h index 3d069644..ff95b609 100644 --- a/m-bptree.h +++ b/m-bptree.h @@ -530,5 +530,16 @@ } \ } \ \ + static inline bool M_C(name, _pop)(value_t *ptr, tree_t b, key_t const key) \ + { \ + if (ptr != NULL) { \ + value_t *ref = M_C(name, _get)(b, key); \ + if (ref == NULL) { \ + return false; \ + } \ + M_GET_SET value_oplist (*ptr, *ref); \ + } \ + return M_C(name, _remove)(b, key); \ + } \ #endif