filter out invalid S_FUN entries
authorRoyce Mitchell III <royce3@ev1.net>
Wed, 15 Dec 2004 02:24:35 +0000 (02:24 +0000)
committerRoyce Mitchell III <royce3@ev1.net>
Wed, 15 Dec 2004 02:24:35 +0000 (02:24 +0000)
svn path=/trunk/; revision=12128

reactos/tools/rsym.c

index 7b8924d..b9e7dbb 100644 (file)
@@ -278,15 +278,23 @@ int main(int argc, char* argv[])
 
   for (i = 0; i < SymbolsCount; i++)
     {
 
   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);
     }
 
   StrEntry = malloc(sizeof(STR_ENTRY) * Count);