From 45c4f383eef2e25cc2c7bad1ea958b608a0f4f9d Mon Sep 17 00:00:00 2001 From: timerix Date: Sat, 27 Aug 2022 22:44:15 +0600 Subject: [PATCH] fixed dtsod serilization bug --- src/DtsodParser/DtsodV24_serialize.c | 30 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/DtsodParser/DtsodV24_serialize.c b/src/DtsodParser/DtsodV24_serialize.c index 1988acf..601c0c0 100644 --- a/src/DtsodParser/DtsodV24_serialize.c +++ b/src/DtsodParser/DtsodV24_serialize.c @@ -74,22 +74,26 @@ Maybe __AppendValue(SerializeSharedData* shared, Unitype u){ } else if(u.typeId==kerepTypeId_HashtablePtr){ // check hashtable is blank + bool hashtableNotBlank=false; Hashtable_foreach(((Hashtable*)u.VoidPtr), __, ({ - goto hashtableNotBlank; + hashtableNotBlank=true; if(__.key); // weird way to disable warning + break; })); - // blank hashtable - addc('{'); - addc('}'); - // not blank hashtable - hashtableNotBlank: - addc('\n'); - AppendTabs(); - addc('{'); - addc('\n'); - try(__serialize(b,tabs+1,u.VoidPtr),___,;); - AppendTabs(); - addc('}'); + + if(hashtableNotBlank){ + addc('\n'); + AppendTabs(); + addc('{'); + addc('\n'); + try(__serialize(b,tabs+1,u.VoidPtr),___,;); + AppendTabs(); + addc('}'); + } + else { + addc('{'); + addc('}'); + } } else { dbg((u.typeId));