Fix modifying of map & set
This commit is contained in:
parent
faca7da0c3
commit
bc69fbb7cc
@ -11,7 +11,7 @@ bool libcdsb_map_update(map_t* x, vtype_variable key, vtype_variable value, void
|
|||||||
if (!mnode_is_empty(n = x->root)) {
|
if (!mnode_is_empty(n = x->root)) {
|
||||||
do {
|
do {
|
||||||
p = n;
|
p = n;
|
||||||
cmp = vtype_compare(key.pointer, key.type, vnode_peek(&n->key, key.type), key.type);
|
cmp = vtype_compare(key.pointer, key.type, vnode_peek(&n->key, x->type), x->type);
|
||||||
|
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
if (callback) callback(libcdsb_variable_build(vnode_peek(&n->key, x->type), x->type),
|
if (callback) callback(libcdsb_variable_build(vnode_peek(&n->key, x->type), x->type),
|
||||||
@ -58,7 +58,7 @@ bool libcdsb_map_inject(map_t* x, vtype_variable key, vtype_variable value, void
|
|||||||
if (!mnode_is_empty(n)) {
|
if (!mnode_is_empty(n)) {
|
||||||
do {
|
do {
|
||||||
p = n;
|
p = n;
|
||||||
cmp = vtype_compare(key.pointer, key.type, vnode_peek(&n->key, key.type), key.type);
|
cmp = vtype_compare(key.pointer, key.type, vnode_peek(&n->key, x->type), x->type);
|
||||||
|
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
if (callback) callback(libcdsb_variable_build(vnode_peek(&n->key, x->type), x->type),
|
if (callback) callback(libcdsb_variable_build(vnode_peek(&n->key, x->type), x->type),
|
||||||
|
@ -13,7 +13,7 @@ bool libcdsb_vset_insert(set_t* x, vtype_variable value) {
|
|||||||
if (!rbnode_is_empty(n = x->root)) {
|
if (!rbnode_is_empty(n = x->root)) {
|
||||||
do {
|
do {
|
||||||
p = n;
|
p = n;
|
||||||
cmp = vtype_compare(value.pointer, value.type, vnode_peek(&n->value, value.type), value.type);
|
cmp = vtype_compare(value.pointer, value.type, vnode_peek(&n->value, x->type), x->type);
|
||||||
|
|
||||||
if (cmp == 0) return false;
|
if (cmp == 0) return false;
|
||||||
|
|
||||||
@ -50,7 +50,7 @@ bool libcdsb_vset_attach(set_t* x, vtype_variable value) {
|
|||||||
if (!rbnode_is_empty(n)) {
|
if (!rbnode_is_empty(n)) {
|
||||||
do {
|
do {
|
||||||
p = n;
|
p = n;
|
||||||
cmp = vtype_compare(value.pointer, value.type, vnode_peek(&n->value, value.type), value.type);
|
cmp = vtype_compare(value.pointer, value.type, vnode_peek(&n->value, x->type), x->type);
|
||||||
|
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
vnode_free(&vn, value.type);
|
vnode_free(&vn, value.type);
|
||||||
|
Loading…
Reference in New Issue
Block a user