filter out invalid S_FUN entries

svn path=/trunk/; revision=12128
This commit is contained in:
Royce Mitchell III 2004-12-15 02:24:35 +00:00
parent 66468c3013
commit 8236f00175

View file

@ -278,15 +278,23 @@ int main(int argc, char* argv[])
for (i = 0; i < SymbolsCount; i++)
{
if (StabEntry[i].n_type == N_FUN ||
StabEntry[i].n_type == N_SLINE ||
StabEntry[i].n_type == N_SO)
{
memmove(&StabEntry[Count], &StabEntry[i], sizeof(STAB_ENTRY));
if ( StabEntry[Count].n_value >= ImageBase )
StabEntry[Count].n_value -= ImageBase;
Count++;
}
switch ( StabEntry[i].n_type )
{
case N_FUN:
if ( StabEntry[i].n_desc == 0 ) // line # 0 isn't valid
continue;
break;
case N_SLINE:
break;
case N_SO:
break;
default:
continue;
}
memmove(&StabEntry[Count], &StabEntry[i], sizeof(STAB_ENTRY));
if ( StabEntry[Count].n_value >= ImageBase )
StabEntry[Count].n_value -= ImageBase;
Count++;
}
StrEntry = malloc(sizeof(STR_ENTRY) * Count);