snapshot v2/p8; update
This commit is contained in:
parent
710f714417
commit
326ed38410
1 changed files with 22 additions and 0 deletions
22
include/sl.h
22
include/sl.h
|
@ -1027,9 +1027,22 @@
|
||||||
slist->slh_pres = next; \
|
slist->slh_pres = next; \
|
||||||
else \
|
else \
|
||||||
prev->field.sle.next[0] = next; \
|
prev->field.sle.next[0] = next; \
|
||||||
|
if (node->field.sle.next[0] == NULL) \
|
||||||
|
prev->field.sle.next[0] = NULL; \
|
||||||
|
else \
|
||||||
|
prev->field.sle.next[0] = next; \
|
||||||
prefix##skip_free_node_##decl(node); \
|
prefix##skip_free_node_##decl(node); \
|
||||||
} \
|
} \
|
||||||
|
prev = NULL; \
|
||||||
if (node->field.sle.gen == gen) { \
|
if (node->field.sle.gen == gen) { \
|
||||||
|
if (prev == NULL) \
|
||||||
|
slist->slh_pres = next; \
|
||||||
|
else \
|
||||||
|
prev->field.sle.next[0] = next; \
|
||||||
|
if (node->field.sle.next[0] == NULL) \
|
||||||
|
prev->field.sle.next[0] = NULL; \
|
||||||
|
else \
|
||||||
|
prev->field.sle.next[0] = next; \
|
||||||
node->field.sle.prev = NULL; \
|
node->field.sle.prev = NULL; \
|
||||||
if (node->field.sle.next[1] != 0) { \
|
if (node->field.sle.next[1] != 0) { \
|
||||||
node->field.sle.next[1] = NULL; \
|
node->field.sle.next[1] = NULL; \
|
||||||
|
@ -1282,6 +1295,15 @@
|
||||||
return n_err; \
|
return n_err; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
/* TODO: ensure that the entries structure is the first or last element \
|
||||||
|
in a node so that snapshots work. */ \
|
||||||
|
if (slist->length > 0 && slist->slh_tail->field.sle.prev == slist->slh_head) { \
|
||||||
|
__skip_integrity_failure_##decl("slist->length is 0, but tail->prev == head, not an internal node"); \
|
||||||
|
n_err++; \
|
||||||
|
if (flags) \
|
||||||
|
return n_err; \
|
||||||
|
} \
|
||||||
|
\
|
||||||
/* Validate the head node */ \
|
/* Validate the head node */ \
|
||||||
\
|
\
|
||||||
/* Validate the tail node */ \
|
/* Validate the tail node */ \
|
||||||
|
|
Loading…
Reference in a new issue