]> git.sur5r.net Git - cc65/commitdiff
Some code cleanup.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 29 Aug 2011 20:30:57 +0000 (20:30 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 29 Aug 2011 20:30:57 +0000 (20:30 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5282 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/dbgsyms.c
src/ld65/dbgsyms.h
src/ld65/mapfile.c

index 89f4080d1c358dfadcede5e587ffaef876b071a7..fb90e4e3a26b4585d48be7d76b0b85c8ab97eb7f 100644 (file)
@@ -213,7 +213,7 @@ DbgSym* ReadDbgSym (FILE* F, ObjData* O, unsigned Id)
 
 
 
-void ClearDbgSymTable (void)
+static void ClearDbgSymTable (void)
 /* Clear the debug symbol table */
 {
     unsigned I;
@@ -349,39 +349,49 @@ void PrintDbgSyms (FILE* F)
 
 
 
-void PrintDbgSymLabels (ObjData* O, FILE* F)
+void PrintDbgSymLabels (FILE* F)
 /* Print the debug symbols in a VICE label file */
 {
-    unsigned I;
+    unsigned I, J;
 
-    /* Walk through all debug symbols in this module */
-    for (I = 0; I < CollCount (&O->DbgSyms); ++I) {
+    /* Clear the symbol table */
+    ClearDbgSymTable ();
 
-       long Val;
+    /* Create labels from all modules we have linked into the output file */
+    for (I = 0; I < CollCount (&ObjDataList); ++I) {
 
-       /* Get the next debug symbol */
-       DbgSym* D = CollAt (&O->DbgSyms, I);
+        /* Get the object file */
+        ObjData* O = CollAtUnchecked (&ObjDataList, I);
 
-        /* Emit this symbol only if it is a label (ignore equates and imports) */
-        if (SYM_IS_EQUATE (D->Type) || SYM_IS_IMPORT (D->Type)) {
-            continue;
-        }
+        /* Walk through all debug symbols in this module */
+        for (J = 0; J < CollCount (&O->DbgSyms); ++J) {
 
-               /* Get the symbol value */
-               Val = GetDbgSymVal (D);
+            long Val;
 
-               /* Lookup this symbol in the table. If it is found in the table, it was
-                * already written to the file, so don't emit it twice. If it is not in
-                * the table, insert and output it.
-                */
-               if (GetDbgSym (D, Val) == 0) {
+            /* Get the next debug symbol */
+            DbgSym* D = CollAt (&O->DbgSyms, J);
+
+            /* Emit this symbol only if it is a label (ignore equates and imports) */
+            if (SYM_IS_EQUATE (D->Type) || SYM_IS_IMPORT (D->Type)) {
+                continue;
+            }
+
+            /* Get the symbol value */
+            Val = GetDbgSymVal (D);
 
-                   /* Emit the VICE label line */
-                   fprintf (F, "al %06lX .%s\n", Val, GetString (D->Name));
+            /* Lookup this symbol in the table. If it is found in the table, it was
+             * already written to the file, so don't emit it twice. If it is not in
+             * the table, insert and output it.
+             */
+            if (GetDbgSym (D, Val) == 0) {
+
+                /* Emit the VICE label line */
+                fprintf (F, "al %06lX .%s\n", Val, GetString (D->Name));
 
-                   /* Insert the symbol into the table */
-                   InsertDbgSym (D, Val);
-               }
+                /* Insert the symbol into the table */
+                InsertDbgSym (D, Val);
+            }
+        }
     }
 }
 
index fd6b9a37dbb16fe1b760dc193e480d968aa27922..2922cb6c1563a1d371ae1aa8fe077ba855dd0a8c 100644 (file)
@@ -72,15 +72,10 @@ typedef struct DbgSym DbgSym;
 DbgSym* ReadDbgSym (FILE* F, ObjData* Obj, unsigned Id);
 /* Read a debug symbol from a file, insert and return it */
 
-void ClearDbgSymTable (void);
-/* Clear the debug symbol table. Must be called before outputting debug syms
- * or debug labels the first time.
- */
-
 void PrintDbgSyms (FILE* F);
 /* Print the debug symbols in a debug file */
 
-void PrintDbgSymLabels (ObjData* O, FILE* F);
+void PrintDbgSymLabels (FILE* F);
 /* Print the debug symbols in a VICE label file */
 
 
index c9aad3f56d63a489d6aba14e5d764a035e744fb5..ff7ee0f84116cb36dcd89db437aa3424e7059e95 100644 (file)
@@ -132,29 +132,17 @@ void CreateMapFile (int ShortMap)
 void CreateLabelFile (void)
 /* Create a label file */
 {
-    unsigned I;
-
     /* Open the label file */
     FILE* F = fopen (LabelFileName, "w");
     if (F == 0) {
        Error ("Cannot create label file `%s': %s", LabelFileName, strerror (errno));
     }
 
-    /* Clear the debug sym table (used to detect duplicates) */
-    ClearDbgSymTable ();
-
     /* Print the labels for the export symbols */
     PrintExportLabels (F);
 
-    /* Create labels from all modules we have linked into the output file */
-    for (I = 0; I < CollCount (&ObjDataList); ++I) {
-
-        /* Get the object file */
-        ObjData* O = CollAtUnchecked (&ObjDataList, I);
-
-        /* Output the labels */
-       PrintDbgSymLabels (O, F);
-    }
+    /* Output the labels */
+    PrintDbgSymLabels (F);
 
     /* Close the file */
     if (fclose (F) != 0) {