2004-10-20 Martin Baulig <martin@ximian.com>
[mono.git] / mcs / class / Mono.CSharp.Debugger / MonoSymbolFile.cs
index d9f14daea7f7a7a579ff532446049520ff3391d3..2a130bc92fb99a114134ee8e3f7e0ca066543c1d 100644 (file)
@@ -382,6 +382,13 @@ namespace Mono.CompilerServices.SymbolWriter
                        long offset_table_offset = bw.BaseStream.Position;
                        ot.Write (bw);
 
+                       //
+                       // Sort the methods according to their tokens and update their index.
+                       //
+                       methods.Sort ();
+                       for (int i = 0; i < methods.Count; i++)
+                               ((MethodEntry) methods [i]).Index = i + 1;
+
                        //
                        // Write data sections.
                        //
@@ -391,7 +398,7 @@ namespace Mono.CompilerServices.SymbolWriter
                        ot.DataSectionSize = (int) bw.BaseStream.Position - ot.DataSectionOffset;
 
                        //
-                       // Write out the method index
+                       // Write the method index table.
                        //
                        ot.MethodTableOffset = (int) bw.BaseStream.Position;
                        for (int i = 0; i < methods.Count; i++) {