move GCLatencyMode to System.Runtime
[mono.git] / mcs / class / Mono.Cecil.Mdb / Mono.Cecil.Mdb / MdbWriter.cs
index 61ab6694d62924e0de4be5e631219d85e17a23f7..eb302a8ac4d31260103c8d828760b78ecf29b76b 100644 (file)
@@ -104,6 +104,8 @@ namespace Mono.Cecil.Mdb {
 
                        Instruction [] instructions = GetInstructions (body);
                        int length = instructions.Length;
+                       if (length == 0)
+                               return;
 
                        int [] offsets = new int [length];
                        int [] startRows = new int [length];
@@ -119,10 +121,20 @@ namespace Mono.Cecil.Mdb {
 
                        for (int i = 0; i < length; i++)
                                m_writer.MarkSequencePoint (offsets [i], startRows [i], startCols [i]);
-                       
+
+                       MarkVariables (body, variables);
+
                        m_writer.CloseMethod ();
                }
 
+               void MarkVariables (MethodBody body, byte [][] variables)
+               {
+                       for (int i = 0; i < body.Variables.Count; i++) {
+                               VariableDefinition var = body.Variables [i];
+                               m_writer.DefineLocalVariable (i, var.Name, variables [i]);
+                       }
+               }
+
                public void Dispose ()
                {
                        m_writer.WriteSymbolFile (m_mvid);