1
0
Fork 0

Manifest: Fix boolean value loading

master
Marrub 2016-10-22 14:48:42 -04:00
parent 9738d31bd0
commit 2420deecb3
1 changed files with 5 additions and 5 deletions

View File

@ -27,16 +27,13 @@
\ \
size_t iter##name = 0 size_t iter##name = 0
#define GenSpecCase(name, var, i, expr) \ #define GenRsrcCase(name, var, i) \
case Lth_ResourceType_##name: \ case Lth_ResourceType_##name: \
rsrc->vec##name.data[iter##name] = iter->var; \ rsrc->vec##name.data[iter##name] = iter->var; \
rsrc->map.elem.data[i ].keyhash = iter->keyhash; \ rsrc->map.elem.data[i ].keyhash = iter->keyhash; \
rsrc->map.elem.data[i++].value = expr; \ rsrc->map.elem.data[i++].value = &rsrc->vec##name.data[iter##name++]; \
break break
#define GenRsrcCase(name, var, i) \
GenSpecCase(name, var, i, &rsrc->vec##name.data[iter##name++])
#define GenManifestValue(name, value, setexpr) \ #define GenManifestValue(name, value, setexpr) \
(Lth_Manifest){ \ (Lth_Manifest){ \
.type = Lth_ResourceType_##name, \ .type = Lth_ResourceType_##name, \
@ -185,6 +182,9 @@ static void ManifestGetInitializer(ManifestState *repr, size_t key)
__with(char const *str = Lth_TokenStreamBump(repr->stream)->str;) __with(char const *str = Lth_TokenStreamBump(repr->stream)->str;)
if(strcmp(str, "true") == 0) GenValueGetter(Integ, integ, 1); if(strcmp(str, "true") == 0) GenValueGetter(Integ, integ, 1);
else if(strcmp(str, "false") == 0) GenValueGetter(Integ, integ, 0); else if(strcmp(str, "false") == 0) GenValueGetter(Integ, integ, 0);
else goto unexpect;
break;
unexpect:
default: default:
ManifestError(repr, "expected initializer"); ManifestError(repr, "expected initializer");
break; break;