started cundump.c:cosmoD_undump(); minor fixes

This commit is contained in:
2023-05-25 21:12:21 -05:00
committed by cpunch
parent 65d37838cd
commit 395f352c6e
4 changed files with 217 additions and 7 deletions

View File

@@ -92,18 +92,12 @@ static void writeCObjFunction(DumpState *dstate, CObjFunction *obj)
writeVector(dstate, obj->chunk.lineInfo, sizeof(int) * obj->chunk.count);
/* write constants */
writeSize(dstate, obj->chunk.constants.count);
for (int i = 0; i < obj->chunk.constants.count; i++) {
writeCValue(dstate, obj->chunk.constants.values[i]);
}
}
#define WRITE_VAR(dstate, type, expression) \
{ \
type _tmp = expression; \
writeBlock(dstate, &_tmp, sizeof(_tmp)); \
break; \
}
static void writeCObj(DumpState *dstate, CObj *obj)
{
/*
@@ -132,6 +126,13 @@ static void writeCObj(DumpState *dstate, CObj *obj)
}
}
#define WRITE_VAR(dstate, type, expression) \
{ \
type _tmp = expression; \
writeBlock(dstate, &_tmp, sizeof(_tmp)); \
break; \
}
static void writeCValue(DumpState *dstate, CValue val)
{
CosmoType t = GET_TYPE(val);