i still have no idea where the bug is

This commit is contained in:
Timerix22 2022-04-21 18:34:05 +03:00
parent 2aee6af0ca
commit 501ab9cd56
2 changed files with 10 additions and 9 deletions

View File

@ -248,7 +248,7 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
case '=': case ':': case '=': case ':':
case '}': case '$': case '}': case '$':
case '\'': case '\'':
safethrow_wrongchar(c,;); safethrow_wrongchar(c,Unitype_free(value));
break; break;
case '#':; case '#':;
char _c=c; char _c=c;
@ -256,27 +256,28 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
try(SkipComment(),_,;); try(SkipComment(),_,;);
if(valueStr.length!=0){ if(valueStr.length!=0){
text=_text; text=_text;
safethrow_wrongchar(_c,;); safethrow_wrongchar(_c,Unitype_free(value));
} }
valueStr.ptr=text+1; // skips '\n' valueStr.ptr=text+1; // skips '\n'
break; break;
case '"': case '"':
if(valueStr.length!=0) safethrow_wrongchar(c,;); if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
try(ReadString(),maybeString,;) try(ReadString(),maybeString,;)
value=maybeString.value; value=maybeString.value;
break; break;
case '{': case '{':
if(valueStr.length!=0) safethrow_wrongchar(c,;); if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
++text; // skips '{' ++text; // skips '{'
try(__deserialize(&text,true), val,;) try(__deserialize(&text,true), val,Unitype_free(value))
value=val.value; value=val.value;
break; break;
case '[': case '[':
if(valueStr.length!=0) safethrow_wrongchar(c,;); if(valueStr.length!=0) safethrow_wrongchar(c,Unitype_free(value));
try(ReadList(),maybeList,;) try(ReadList(),maybeList,Unitype_free(value))
value=maybeList.value; value=maybeList.value;
break; break;
case ']': case ']':
if(!readingList) safethrow_wrongchar(c,Unitype_free(value));
*readingList=false; *readingList=false;
case ';': case ';':
case ',': case ',':
@ -289,7 +290,7 @@ Maybe __ReadValue(DeserializeSharedData* shared, bool* readingList){
return SUCCESS(value); return SUCCESS(value);
default: default:
if(spaceAfterVal) if(spaceAfterVal)
safethrow_wrongchar(c,;); safethrow_wrongchar(c,Unitype_free(value));
valueStr.length++; valueStr.length++;
break; break;
} }

View File

@ -32,7 +32,7 @@ void printMaybe(Maybe e);
#define __RETURN_EXCEPTION(ERRMSG) return (Maybe){.errmsg=ERRMSG, .value=UniNull} #define __RETURN_EXCEPTION(ERRMSG) return (Maybe){.errmsg=ERRMSG, .value=UniNull}
#define __EXIT(ERRMSG) ({ printf("\e[91m%s\e[0m \n", ERRMSG); exit(128); }) #define __EXIT(ERRMSG) ({ printf("\e[91m%s\e[0m \n", ERRMSG); free(ERRMSG); exit(128); })
char* __doNothing(char* a); char* __doNothing(char* a);
char* __unknownErr( ); char* __unknownErr( );