mirror of
https://github.com/janet-lang/janet
synced 2025-05-04 16:34:15 +00:00
Merge pull request #448 from GrayJack/fix-table-remove
Fix janet_table_remove returning the key instead of the value
This commit is contained in:
commit
463e6d9316
@ -61,5 +61,11 @@ int table_test() {
|
|||||||
assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key1")), janet_wrap_integer(10)));
|
assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key1")), janet_wrap_integer(10)));
|
||||||
assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key2")), janet_wrap_integer(100)));
|
assert(janet_equals(janet_table_get(t2, janet_csymbolv("t2key2")), janet_wrap_integer(100)));
|
||||||
|
|
||||||
|
assert(t2->count == 4);
|
||||||
|
assert(janet_equals(janet_table_remove(t2, janet_csymbolv("t2key1")), janet_wrap_integer(10)));
|
||||||
|
assert(t2->count == 3);
|
||||||
|
assert(janet_equals(janet_table_remove(t2, janet_csymbolv("t2key2")), janet_wrap_integer(100)));
|
||||||
|
assert(t2->count == 2);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -173,7 +173,7 @@ Janet janet_table_rawget(JanetTable *t, Janet key) {
|
|||||||
Janet janet_table_remove(JanetTable *t, Janet key) {
|
Janet janet_table_remove(JanetTable *t, Janet key) {
|
||||||
JanetKV *bucket = janet_table_find(t, key);
|
JanetKV *bucket = janet_table_find(t, key);
|
||||||
if (NULL != bucket && !janet_checktype(bucket->key, JANET_NIL)) {
|
if (NULL != bucket && !janet_checktype(bucket->key, JANET_NIL)) {
|
||||||
Janet ret = bucket->key;
|
Janet ret = bucket->value;
|
||||||
t->count--;
|
t->count--;
|
||||||
t->deleted++;
|
t->deleted++;
|
||||||
bucket->key = janet_wrap_nil();
|
bucket->key = janet_wrap_nil();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user