Add new container without a value.
This commit is contained in:
1 parent
2f53d98806
commit
8e335535cc
1 file changed
+10
-4
+10
-4
@@ -27,12 +27,18 @@
|
||||
|
||||
#include "m-core.h"
|
||||
|
||||
/* Define a B+tree of a given type, of size N.
|
||||
USAGE: BPTREE_DEF(name, type, N, [, oplist_of_the_type]) */
|
||||
/* Define a B+tree which maps a key to a value, of size N.
|
||||
USAGE: BPTREE_DEF2(name, N, key_t, key_oplist, value_t, value_oplist) */
|
||||
#define BPTREE_DEF2(name, N, key_t, key_oplist, value_t, value_oplist) \
|
||||
BPTREEI_DEF2(name, N, key_t, key_oplist, value_t, value_oplist, 1, \
|
||||
M_C(name, _t), M_C(name, _node_t), M_C(name, _pit_t))
|
||||
|
||||
/* Define a B+tree of a given type, of size N.
|
||||
USAGE: BPTREE_DEF(name, N, type, [, oplist_of_the_type]) */
|
||||
#define BPTREE_DEF(name, N, type, oplist) \
|
||||
BPTREEI_DEF2(name, N, type, oplist, type, oplist, 0, \
|
||||
M_C(name, _t), M_C(name, _node_t), M_C(name, _pit_t))
|
||||
|
||||
//TODO: oplist
|
||||
|
||||
/********************************** INTERNAL ************************************/
|
||||
@@ -148,7 +154,7 @@
|
||||
while (n != NULL) { \
|
||||
/* Clear key (& value for leaf) */ \
|
||||
int num = M_C(name, _get_num)(n); \
|
||||
bool is_leaf = M_C(name, _is_leaf)(n); \
|
||||
M_IF(isMap)(bool is_leaf = M_C(name, _is_leaf)(n);,) \
|
||||
for(int j = 0; j < num; j++) { \
|
||||
M_GET_CLEAR key_oplist(n->key[i]); \
|
||||
M_IF(isMap)(if (is_leaf) { \
|
||||
@@ -267,7 +273,7 @@
|
||||
return i; \
|
||||
} \
|
||||
\
|
||||
static inline void M_C(name, _set_at)(tree_t b, key_t const key M_IF(isMap)(M_DEFERRED_COMMA value_t const value,)) \
|
||||
static inline void M_IF(isMap)(M_C(name, _set_at),M_C(name,_push))(tree_t b, key_t const key M_IF(isMap)(M_DEFERRED_COMMA value_t const value,)) \
|
||||
{ \
|
||||
pit_t pit; \
|
||||
BPTREEI_CONTRACT(N, key_oplist, b); \
|
||||
|
||||
Reference in new issue
Block a user