]> git.sur5r.net Git - cc65/commitdiff
Don't write out spans for line infos if no debug info is requested for the
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 18 Aug 2011 10:36:08 +0000 (10:36 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 18 Aug 2011 10:36:08 +0000 (10:36 +0000)
object file.

git-svn-id: svn://svn.cc65.org/cc65/trunk@5205 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/lineinfo.c

index 7c8bf68fe698ba5ff8a499f971b78a2584cc61ae..7d8e33fe0a86294a2c0a6fa2e26cf4660b0bb175 100644 (file)
@@ -438,6 +438,8 @@ void WriteLineInfos (void)
 {
     unsigned I;
 
+    Collection EmptySpans = STATIC_COLLECTION_INITIALIZER;
+
     /* Tell the object file module that we're about to write line infos */
     ObjStartLineInfos ();
 
@@ -456,12 +458,22 @@ void WriteLineInfos (void)
         /* Write the type and count of the line info */
         ObjWriteVar (LI_MAKE_TYPE (LI->Key.Type, LI->Key.Count));
 
-        /* Write the spans for this line */
-        WriteSpans (&LI->Spans);
+        /* Spans are only added to the debug file if debug information is 
+         * requested. Otherwise we write an empty list.
+         */
+        if (DbgSyms) {
+            WriteSpans (&LI->Spans);
+        } else {
+            /* Write out an empty list */
+            WriteSpans (&EmptySpans);
+        }
     }
 
     /* End of line infos */
     ObjEndLineInfos ();
+
+    /* For the sake of completeness, but not really necessary */
+    DoneCollection (&EmptySpans);
 }