static int LoadHeader (lua_State* L, ZIO* Z) { int version,swap; Number f=0,tf=TEST_NUMBER; LoadSignature(L,Z); version=ezgetc(L,Z); if (version>VERSION) luaO_verror(L,"`%.99s' too new:\n" " read version %d.%d; expected at most %d.%d", ZNAME(Z),V(version),V(VERSION)); if (version<VERSION0) /* check last major change */ luaO_verror(L,"`%.99s' too old:\n" " read version %d.%d; expected at least %d.%d", ZNAME(Z),V(version),V(VERSION)); swap=(luaU_endianess()!=ezgetc(L,Z)); /* need to swap bytes? */ TESTSIZE(sizeof(int)); TESTSIZE(sizeof(size_t)); TESTSIZE(sizeof(Instruction)); TESTSIZE(SIZE_INSTRUCTION); TESTSIZE(SIZE_OP); TESTSIZE(SIZE_B); TESTSIZE(sizeof(Number)); f=LoadNumber(L,Z,swap); if ((long)f!=(long)tf) /* disregard errors in last bit of fraction */ luaO_verror(L,"unknown number format in `%.99s':\n" " read " NUMBER_FMT "; expected " NUMBER_FMT, ZNAME(Z),f,tf); return swap; }
static void DumpHeader(void* D) { DumpByte(ID_CHUNK,D); DumpSig(SIGNATURE, D); DumpByte(VERSION,D); DumpByte(luaU_endianess(),D); DumpByte(sizeof(int),D); DumpByte(sizeof(size_t),D); DumpByte(sizeof(Instruction),D); DumpByte(SIZE_INSTRUCTION,D); DumpByte(SIZE_OP,D); DumpByte(SIZE_B,D); DumpByte(sizeof(Number),D); DumpNumber(TEST_NUMBER,D); }