else if (ret)
return content;
- if (!mas_wr_walk(mas, &r_min, &r_max, entry) &&
- !mas->span_enode) {
- /* Not a leaf or spanning write. = broken tree. */
- // FIXME, rebuild?
+ if (!mas_wr_walk(mas, &r_min, &r_max, entry) && !mas->span_enode)
return NULL;
- }
if (mas->span_enode) {
if (!overwrite) {
goto done;
}
- /* Expand store of NULL, if necessary */
-
if (!entry) {
mas_extend_null(mas, mas);
slot = mas_get_slot(mas);
// Check if this is an append operation.
end = mas_data_end(mas);
if ((b_node.b_end < slot_cnt) && ((slot > end) || !end)) {
- // Appending
if (r_min < mas->index)
mte_set_pivot(mas->node, slot++, mas->index - 1);
if (ret > 2)
return NULL;
-
return content;
}
void *mas_store(struct ma_state *mas, void *entry)