Commit ee323085 authored by Ben Avison's avatar Ben Avison
Browse files

Data corruption bugfix

Detail:
  The code was continuing to reference a couple of data blocks after they
  had been freed, leading to corrupted output files that failed with
  undefined instruction errors. Potentially could have affected RISC OS,
  but this was first noticed on Linux where the failure seems to happen
  every time.
Admin:
  Verified that it now produces correct executables.

Version 5.10. Tagged as 'squeeze-5_10'
parent 8d937699
/* (5.09)
/* (5.10)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 5.09
#define Module_MajorVersion_CMHG 5.10
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 19 May 2010
#define Module_Date_CMHG 18 Oct 2010
#define Module_MajorVersion "5.09"
#define Module_Version 509
#define Module_MajorVersion "5.10"
#define Module_Version 510
#define Module_MinorVersion ""
#define Module_Date "19 May 2010"
#define Module_Date "18 Oct 2010"
#define Module_ApplicationDate "19-May-10"
#define Module_ApplicationDate "18-Oct-10"
#define Module_ComponentName "squeeze"
#define Module_ComponentPath "castle/RiscOS/Tools/Sources/squeeze"
#define Module_FullVersion "5.09"
#define Module_HelpVersion "5.09 (19 May 2010)"
#define Module_LibraryVersionInfo "5:9"
#define Module_FullVersion "5.10"
#define Module_HelpVersion "5.10 (18 Oct 2010)"
#define Module_LibraryVersionInfo "5:10"
......@@ -715,10 +715,12 @@ static char *compresscode(word *code, int size, int execoffset)
if (verbose > 1)
fprintf(stderr, "-- encode gives %d in %d csec\n", header.encodedsize, ticks());
tabstart = pos;
pos = encodetable(shorts, 0, pos); xfree(shorts);
pos = encodetable(longs, 1, pos); xfree(longs);
pos = encodetable(shorts, 0, pos);
pos = encodetable(longs, 1, pos);
header.nshorts = shorts->size;
xfree(shorts);
header.nlongs = longs->size;
xfree(longs);
/* now word-align before the header words */
while (((int)pos & 3) != 0) *pos++ = 0;
header.encodedtabs = (pos - tabstart);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment