X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Fsymentry.c;h=18cc026ea6b4ec9e250bb16fd6c31c8fd475541a;hb=c797b3b37674938d4ebf0e3eb0c65cbdc98427ac;hp=aa5949f9797f7c5f185776ef47ba0eb098909254;hpb=30aab9a6b2383bfa930a868c08037b304d93a9bd;p=cc65 diff --git a/src/cc65/symentry.c b/src/cc65/symentry.c index aa5949f97..18cc026ea 100644 --- a/src/cc65/symentry.c +++ b/src/cc65/symentry.c @@ -71,6 +71,7 @@ SymEntry* NewSymEntry (const char* Name, unsigned Flags) E->Type = 0; E->Attr = 0; E->AsmName = 0; + E->V.BssName = 0; memcpy (E->Name, Name, Len+1); /* Return the new entry */ @@ -82,8 +83,19 @@ SymEntry* NewSymEntry (const char* Name, unsigned Flags) void FreeSymEntry (SymEntry* E) /* Free a symbol entry */ { + unsigned i; + TypeFree (E->Type); xfree (E->AsmName); + + if (E->Flags & SC_LABEL) { + for (i = 0; i < CollCount (E->V.L.DefsOrRefs); i++) { + xfree (CollAt (E->V.L.DefsOrRefs, i)); + } + + DoneCollection (E->V.L.DefsOrRefs); + } + xfree (E); } @@ -126,19 +138,19 @@ void DumpSymEntry (FILE* F, const SymEntry* E) /* Print the assembler name if we have one */ if (E->AsmName) { fprintf (F, " AsmName: %s\n", E->AsmName); - } + } /* Print the flags */ SymFlags = E->Flags; - fprintf (F, " Flags: "); + fprintf (F, " Flags:"); for (I = 0; I < sizeof (Flags) / sizeof (Flags[0]) && SymFlags != 0; ++I) { if ((SymFlags & Flags[I].Val) == Flags[I].Val) { SymFlags &= ~Flags[I].Val; - fprintf (F, "%s ", Flags[I].Name); + fprintf (F, " %s", Flags[I].Name); } } if (SymFlags != 0) { - fprintf (F, "%04X", SymFlags); + fprintf (F, " 0x%05X", SymFlags); } fprintf (F, "\n");