+ public static void EndIteratorBody (ILGenerator ig)
+ {
+ if (symwriter != null) {
+ int offset = symwriter.GetILOffset (ig);
+ symwriter.EndIteratorBody (offset);
+ }
+ }
+
+ public static void StartIteratorDispatcher (ILGenerator ig)
+ {
+ if (symwriter != null) {
+ int offset = symwriter.GetILOffset (ig);
+ symwriter.StartIteratorDispatcher (offset);
+ }
+ }
+
+ public static void EndIteratorDispatcher (ILGenerator ig)
+ {
+ if (symwriter != null) {
+ int offset = symwriter.GetILOffset (ig);
+ symwriter.EndIteratorDispatcher (offset);
+ }
+ }
+#endregion
+
+ public static void MarkSequencePoint (ILGenerator ig, Location loc)
+ {
+ if (symwriter != null) {
+ SourceFileEntry file = loc.SourceFile.SourceFileEntry;
+ int offset = symwriter.GetILOffset (ig);
+ symwriter.MarkSequencePoint (
+ offset, file, loc.Row, loc.Column, loc.Hidden);
+ }
+ }
+
+ public static void WriteSymbolFile ()
+ {
+ if (symwriter != null)
+ symwriter.WriteSymbolFile ();
+ }
+
+ public static bool Initialize (ModuleBuilder module, string filename)
+ {
+ symwriter = new SymbolWriterImpl (module, filename);
+ if (!symwriter.Initialize ()) {
+ symwriter = null;
+ return false;
+ }
+
+ return true;
+ }
+
+ public static void Reset ()
+ {
+ symwriter = null;