Fix assert fail when delpaths is given non-array (fix #901)
This commit is contained in:
1 parent
2d05b5475c
commit
b8f71d3659
2 files changed
+9
No files matched your search
@@ -390,6 +390,11 @@ static jv delpaths_sorted(jv object, jv paths, int start) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
jv jv_delpaths(jv object, jv paths) {
|
jv jv_delpaths(jv object, jv paths) {
|
||||||
|
if (jv_get_kind(paths) != JV_KIND_ARRAY) {
|
||||||
|
jv_free(object);
|
||||||
|
jv_free(paths);
|
||||||
|
return jv_invalid_with_msg(jv_string("Paths must be specified as an array"));
|
||||||
|
}
|
||||||
paths = jv_sort(paths, jv_copy(paths));
|
paths = jv_sort(paths, jv_copy(paths));
|
||||||
jv_array_foreach(paths, i, elem) {
|
jv_array_foreach(paths, i, elem) {
|
||||||
if (jv_get_kind(elem) != JV_KIND_ARRAY) {
|
if (jv_get_kind(elem) != JV_KIND_ARRAY) {
|
||||||
|
|||||||
@@ -756,6 +756,10 @@ delpaths([[-200]])
|
|||||||
[1,2,3]
|
[1,2,3]
|
||||||
[1,2,3]
|
[1,2,3]
|
||||||
|
|
||||||
|
try delpaths(0) catch .
|
||||||
|
{}
|
||||||
|
"Paths must be specified as an array"
|
||||||
|
|
||||||
del(.), del(empty), del((.foo,.bar,.baz) | .[2,3,0]), del(.foo[0], .bar[0], .foo, .baz.bar[0].x)
|
del(.), del(empty), del((.foo,.bar,.baz) | .[2,3,0]), del(.foo[0], .bar[0], .foo, .baz.bar[0].x)
|
||||||
{"foo": [0,1,2,3,4], "bar": [0,1]}
|
{"foo": [0,1,2,3,4], "bar": [0,1]}
|
||||||
null
|
null
|
||||||
|
|||||||
Reference in new issue
Block a user