From 588453a2b7684e5b9fc98a340808e1f34736b7d3 Mon Sep 17 00:00:00 2001 From: Timerix22 Date: Wed, 24 May 2023 02:38:11 +0600 Subject: [PATCH] dtsod dollar list bug fixed --- src/DtsodParser/DtsodV24_deserialize.c | 3 +++ tests/test_dtsod.c | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/DtsodParser/DtsodV24_deserialize.c b/src/DtsodParser/DtsodV24_deserialize.c index 5c201aa..57ac4d0 100644 --- a/src/DtsodParser/DtsodV24_deserialize.c +++ b/src/DtsodParser/DtsodV24_deserialize.c @@ -320,6 +320,9 @@ Maybe __deserialize(char** _text, bool _calledRecursively) { Unitype lu; if(Hashtable_tryGet(dict,nameCPtr, &lu)){ list=(Autoarr(Unitype)*)lu.VoidPtr; + // Key is not used in that case, because it is already added + // to the table with the first dollar list item. + free(nameCPtr); } else{ list=Autoarr_create(Unitype,ARR_BC,ARR_BL); diff --git a/tests/test_dtsod.c b/tests/test_dtsod.c index d5ea59d..e3f846a 100644 --- a/tests/test_dtsod.c +++ b/tests/test_dtsod.c @@ -12,7 +12,11 @@ const char text[]= " text: \"_$\\\"\\\\'''a ыыы000;2;=:%d;```\";\n" " list: [10,20,30,0,0 ];" "};" -"h: { };"; +"h: { };" +"$dollar_list_single: { smth: \"-_-\"; };" +"$dollar_list_many: { i: 0; };" +"$dollar_list_many: { i: 1; };" +"$dollar_list_many: { i: 2; };"; void print_dtsod(Hashtable* dtsod){ kprintf("\e[92m");