Mercurial > hg > openttd
changeset 6085:337f2016fc2b draft
(svn r8820) -Codechange (r8807, r8806): Remove the unneeded calloc/free allocation of GRFConfig and turn it into a simple variable (it's supposed to be data-only). Thanks Tron.
author | Darkvater <Darkvater@openttd.org> |
---|---|
date | Tue, 20 Feb 2007 00:01:54 +0000 |
parents | 6e2526ba7cb5 |
children | d242fc975d65 |
files | src/newgrf_config.cpp src/oldloader.cpp |
diffstat | 2 files changed, 16 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -465,12 +465,13 @@ static void Load_NGRF(void) { - GRFConfig *c = CallocT<GRFConfig>(1); + GRFConfig c; + memset(&c, 0, sizeof(GRFConfig)); + while (SlIterateArray() != -1) { - SlObject(c, _grfconfig_desc); - AppendToGRFConfigList(&_grfconfig, c); + SlObject(&c, _grfconfig_desc); + AppendToGRFConfigList(&_grfconfig, &c); } - free(c); /* Append static NewGRF configuration */ AppendStaticGRFConfigs(&_grfconfig);
--- a/src/oldloader.cpp +++ b/src/oldloader.cpp @@ -1359,38 +1359,41 @@ uint32 len = ReadUint32(ls); switch (id) { - /* List of GRFIDs, used in the savegame + /* List of GRFIDs, used in the savegame. 0x8004 is the new ID * They are saved in a 'GRFID:4 active:1' format, 5 bytes for each entry */ case 0x2: case 0x8004: { - /* Skip the first element: TTDP hack for the Action D special variables FFFF0000 01 */ + /* Skip the first element: TTDP hack for the Action D special variables (FFFF0000 01) */ ReadUint32(ls); ReadByte(ls); len -= 5; ClearGRFConfigList(&_grfconfig); - GRFConfig *c = CallocT<GRFConfig>(1); + GRFConfig c; + memset(&c, 0, sizeof(GRFConfig)); + while (len != 0) { uint32 grfid = ReadUint32(ls); if (ReadByte(ls) == 1) { - c->grfid = grfid; - c->filename = "TTDP game, no information"; + c.grfid = grfid; + c.filename = "TTDP game, no information"; - AppendToGRFConfigList(&_grfconfig, c); - DEBUG(oldloader, 3, "TTDPatch game using GRF file with GRFID %0X", BSWAP32(c->grfid)); + AppendToGRFConfigList(&_grfconfig, &c); + DEBUG(oldloader, 3, "TTDPatch game using GRF file with GRFID %0X", BSWAP32(c.grfid)); } len -= 5; }; - free(c); /* Append static NewGRF configuration */ AppendStaticGRFConfigs(&_grfconfig); } break; + case 0x3: { /* TTDPatch version and configuration */ uint32 ttdpv = ReadUint32(ls); DEBUG(oldloader, 3, "Game saved with TTDPatch version %d.%d.%d r%d", GB(ttdpv, 24, 8), GB(ttdpv, 20, 4), GB(ttdpv, 16, 4), GB(ttdpv, 0, 16)); len -= 4; while (len-- != 0) ReadByte(ls); // skip the configuration } break; + default: DEBUG(oldloader, 4, "Skipping unknown extra chunk %X", id); while (len-- != 0) ReadByte(ls);