Fix a memory leak in JV and add more tests

This commit is contained in:
Stephen Dolan committed 2012-09-03 17:18:10 +01:00
1 parent eea05ff924
commit 32e324a283
2 files changed
+11 -1

No files matched your search

+3 -1
View File
@@ -240,7 +240,9 @@ jv jv_array_get(jv j, int idx) {
jv jv_array_set(jv j, int idx, jv val) {
assert(jv_get_kind(j) == JV_KIND_ARRAY);
// copy/free of val,j coalesced
*jvp_array_write(&j.val.complex, idx) = val;
jv* slot = jvp_array_write(&j.val.complex, idx);
jv_free(*slot);
*slot = val;
return j;
}
+8
View File
@@ -215,6 +215,14 @@ def id(x):x; 2000 as $x | def f(x):1 as $x | id([$x, x, x]); def g(x): 100 as $x
{"bar":42}
{"foo":42, "bar":42}
.foo |= .+1
{"foo": 42}
{"foo": 43}
.[0].a |= {"old":., "new":(.+1)}
[{"a":1,"b":2}]
[{"a":{"old":1, "new":2},"b":2}]
def inc(x): x |= .+1; inc(.[].a)
[{"a":1,"b":2},{"a":2,"b":4},{"a":7,"b":8}]
[{"a":2,"b":2},{"a":3,"b":4},{"a":8,"b":8}]