Rewrite inner loop. should be a little bit faster.

This commit is contained in:
Patrick Pelissier committed 2018-05-11 22:41:00 +02:00
1 parent a5ac43e5f3
commit 4b1ed25ef3
1 file changed
+5 -4
+5 -4
View File
@@ -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));,) \