src/json.c

changeset 1596
2d2c4ec38133
parent 1595
2e0353a9bc30
child 1600
a1a728d7ebfd
--- a/src/json.c	Sun Dec 14 11:05:03 2025 +0100
+++ b/src/json.c	Sun Dec 14 11:45:43 2025 +0100
@@ -646,6 +646,16 @@
                 json_add_state(json, JP_STATE_OBJ_NAME_OR_CLOSE);
                 return_rec(CX_JSON_NO_ERROR);
             }
+            case CX_JSON_TOKEN_END_ARRAY: {
+                if (state == JP_STATE_VALUE_BEGIN_AR) {
+                    // discard the array from the value buffer
+                    json->vbuf_size--;
+                    json->states_size--;
+                    return_rec(CX_JSON_NO_ERROR);
+                } else {
+                    return_rec(CX_JSON_FORMAT_ERROR_UNEXPECTED_TOKEN);
+                }
+            }
             case CX_JSON_TOKEN_STRING: {
                 if ((vbuf = json_create_value(json, CX_JSON_STRING)) == NULL) {
                     return_rec(CX_JSON_VALUE_ALLOC_FAILED); // LCOV_EXCL_LINE

mercurial