summaryrefslogtreecommitdiffstats
path: root/jv_aux.c
diff options
context:
space:
mode:
Diffstat (limited to 'jv_aux.c')
-rw-r--r--jv_aux.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/jv_aux.c b/jv_aux.c
index 5f233e05..dec5ce20 100644
--- a/jv_aux.c
+++ b/jv_aux.c
@@ -57,7 +57,10 @@ jv jv_get(jv t, jv k) {
}
} else if (jv_get_kind(t) == JV_KIND_ARRAY && jv_get_kind(k) == JV_KIND_NUMBER) {
if(jv_is_integer(k)){
- v = jv_array_get(t, (int)jv_number_value(k));
+ int idx = (int)jv_number_value(k);
+ if (idx < 0)
+ idx += jv_array_length(jv_copy(t));
+ v = jv_array_get(t, idx);
if (!jv_is_valid(v)) {
jv_free(v);
v = jv_null();