1
0
mirror of https://github.com/cc65/cc65.git synced 2025-03-03 09:32:33 +00:00

Don't use a separate Count field for the line info type.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5209 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz 2011-08-18 12:35:43 +00:00
parent d3017665d2
commit 862c0ba70e

View File

@ -79,8 +79,7 @@ static int HT_Compare (const void* Key1, const void* Key2);
typedef struct LineInfoKey LineInfoKey;
struct LineInfoKey {
FilePos Pos; /* File position */
unsigned short Type; /* Type of line info */
unsigned short Count; /* Recursion counter */
unsigned Type; /* Type/count of line info */
};
/* Structure that holds line info */
@ -153,15 +152,12 @@ static int HT_Compare (const void* Key1, const void* Key2)
const LineInfoKey* K1 = Key1;
const LineInfoKey* K2 = Key2;
/* Compare line number, then file and type, then count */
/* Compare line number, then file and type */
int Res = (int)K2->Pos.Line - (int)K1->Pos.Line;
if (Res == 0) {
Res = (int)K2->Pos.Name - (int)K1->Pos.Name;
if (Res == 0) {
Res = (int)K2->Type - (int)K1->Type;
if (Res == 0) {
Res = (int)K2->Count - (int)K1->Count;
}
}
}
@ -310,8 +306,7 @@ LineInfo* StartLine (const FilePos* Pos, unsigned Type, unsigned Count)
/* Prepare the key struct */
Key.Pos = *Pos;
Key.Type = Type;
Key.Count = Count;
Key.Type = LI_MAKE_TYPE (Type, Count);
/* Try to find a line info with this position and type in the hash table.
* If so, reuse it. Otherwise create a new one.
@ -320,8 +315,6 @@ LineInfo* StartLine (const FilePos* Pos, unsigned Type, unsigned Count)
if (LI == 0) {
/* Allocate a new LineInfo */
LI = NewLineInfo (&Key);
} else {
Key.Count = 2;
}
/* Open the spans for this line info */
@ -456,9 +449,9 @@ void WriteLineInfos (void)
ObjWritePos (&LI->Key.Pos);
/* Write the type and count of the line info */
ObjWriteVar (LI_MAKE_TYPE (LI->Key.Type, LI->Key.Count));
ObjWriteVar (LI->Key.Type);
/* Spans are only added to the debug file if debug information is
/* Spans are only added to the debug file if debug information is
* requested. Otherwise we write an empty list.
*/
if (DbgSyms) {