From 4b1ed25ef33caf065cb0889310781091b421afea Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Fri, 11 May 2018 22:41:00 +0200 Subject: [PATCH] Rewrite inner loop. should be a little bit faster. --- m-bptree.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/m-bptree.h b/m-bptree.h index 01307e72..9abae5dc 100644 --- a/m-bptree.h +++ b/m-bptree.h @@ -403,10 +403,11 @@ assert (num <= N); \ for(i = 0; i < num; i++) { \ int cmp = M_GET_CMP key_oplist (key, n->key[i]); \ - if (M_UNLIKELY (cmp == 0)) { \ - M_IF(isMap)(M_GET_SET value_oplist (n->kind.value[i], value);,) \ - return -1; \ - } else if (cmp < 0) { \ + if (cmp <= 0) { \ + if (M_UNLIKELY (cmp == 0)) { \ + M_IF(isMap)(M_GET_SET value_oplist (n->kind.value[i], value);,) \ + return -1; \ + } \ /* Move tables to make space for insertion */ \ memmove(&n->key[i+1], &n->key[i], sizeof(key_t)*(num-i)); \ M_IF(isMap)(memmove(&n->kind.value[i+1], &n->kind.value[i], sizeof(value_t)*(num-i));,) \