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