X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Fsymbolwriter.cs;h=5159f73d0bfa97257b8ddbb4a305a6a7123db94b;hb=55c4f6f6cfdf1df8233333d76f73274fd6d3a832;hp=53462122c37840a10d734fc8f3a2b8c56c1c7e75;hpb=6b79b6c14d321f1e7cc8cd9727e4ce4df02bf96a;p=mono.git diff --git a/mcs/mcs/symbolwriter.cs b/mcs/mcs/symbolwriter.cs index 53462122c37..5159f73d0bf 100644 --- a/mcs/mcs/symbolwriter.cs +++ b/mcs/mcs/symbolwriter.cs @@ -9,7 +9,6 @@ // using System; -using System.Collections; using System.Reflection; using System.Reflection.Emit; @@ -25,10 +24,12 @@ namespace Mono.CSharp { private static SymbolWriterImpl symwriter; class SymbolWriterImpl : MonoSymbolWriter { +#if !NET_4_0 delegate int GetILOffsetFunc (ILGenerator ig); + GetILOffsetFunc get_il_offset_func; +#endif delegate Guid GetGuidFunc (ModuleBuilder mb); - GetILOffsetFunc get_il_offset_func; GetGuidFunc get_guid_func; ModuleBuilder module_builder; @@ -41,7 +42,11 @@ namespace Mono.CSharp { public int GetILOffset (ILGenerator ig) { +#if NET_4_0 + return ig.ILOffset; +#else return get_il_offset_func (ig); +#endif } public void WriteSymbolFile () @@ -52,7 +57,9 @@ namespace Mono.CSharp { public bool Initialize () { - MethodInfo mi = typeof (ILGenerator).GetMethod ( + MethodInfo mi; +#if !NET_4_0 + mi = typeof (ILGenerator).GetMethod ( "Mono_GetCurrentOffset", BindingFlags.Static | BindingFlags.NonPublic); if (mi == null) @@ -60,6 +67,7 @@ namespace Mono.CSharp { get_il_offset_func = (GetILOffsetFunc) System.Delegate.CreateDelegate ( typeof (GetILOffsetFunc), mi); +#endif mi = typeof (ModuleBuilder).GetMethod ( "Mono_GetGuid", @@ -173,50 +181,50 @@ namespace Mono.CSharp { symwriter.DefineCapturedScope (scope_id, id, captured_name); } - public static void OpenCompilerGeneratedBlock (ILGenerator ig) + public static void OpenCompilerGeneratedBlock (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.OpenCompilerGeneratedBlock (offset); } } - public static void CloseCompilerGeneratedBlock (ILGenerator ig) + public static void CloseCompilerGeneratedBlock (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.CloseCompilerGeneratedBlock (offset); } } - public static void StartIteratorBody (ILGenerator ig) + public static void StartIteratorBody (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.StartIteratorBody (offset); } } - public static void EndIteratorBody (ILGenerator ig) + public static void EndIteratorBody (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.EndIteratorBody (offset); } } - public static void StartIteratorDispatcher (ILGenerator ig) + public static void StartIteratorDispatcher (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.StartIteratorDispatcher (offset); } } - public static void EndIteratorDispatcher (ILGenerator ig) + public static void EndIteratorDispatcher (EmitContext ec) { if (symwriter != null) { - int offset = symwriter.GetILOffset (ig); + int offset = symwriter.GetILOffset (ec.ig); symwriter.EndIteratorDispatcher (offset); } }