+2003-02-09 Martin Baulig <martin@ximian.com>
+
+ * IMonoSymbolWriter.cs (MarkSequencePoint): New method which takes
+ just the required arguments as scalars, not arrays.
+
+ * ILGenerator.cs (ILGenerator.MarkSequencePoint): Use that new
+ interface method; unnecessarily creating such a large number of
+ arrays is both slow and too memory consuming.
+
2003-02-08 Zoltan Varga <vargaz@freemail.hu>
* MethodBuilder.cs: Added error checking to methods so they conform to
using System.Collections;
using System.Diagnostics.SymbolStore;
using System.Runtime.InteropServices;
+using Mono.CSharp.Debugger;
namespace System.Reflection.Emit {
private int num_fixups;
private ModuleBuilder module;
private AssemblyBuilder abuilder;
- private ISymbolWriter sym_writer;
+ private IMonoSymbolWriter sym_writer;
private Stack scopes;
private int cur_block;
private Stack open_blocks;
module = (ModuleBuilder)((ConstructorBuilder)mb).TypeBuilder.Module;
}
abuilder = (AssemblyBuilder)module.Assembly;
- sym_writer = module.GetSymWriter ();
+ sym_writer = module.symbol_writer;
open_blocks = new Stack ();
}
if (sym_writer == null)
return;
- int[] offsets = { code_len };
- int[] startLines = { startLine };
- int[] startColumns = { startColumn };
- int[] endLines = { endLine };
- int[] endColumns = { endColumn };
-
- sym_writer.DefineSequencePoints (document, offsets, startLines, startColumns,
- endLines, endColumns);
+ sym_writer.MarkSequencePoint (code_len, startLine, startColumn);
}
public virtual void ThrowException (Type exceptionType) {
throw new NotImplementedException ();