mirror of https://github.com/icsharpcode/ILSpy.git
9 changed files with 744 additions and 38 deletions
@ -0,0 +1,14 @@ |
|||||||
|
using System; |
||||||
|
|
||||||
|
namespace Issue1157 |
||||||
|
{ |
||||||
|
internal abstract class BaseClass |
||||||
|
{ |
||||||
|
public abstract event EventHandler IDontKnowMeHereOut; |
||||||
|
} |
||||||
|
|
||||||
|
internal class OtherClass : BaseClass |
||||||
|
{ |
||||||
|
public override event EventHandler IDontKnowMeHereOut; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,173 @@ |
|||||||
|
.assembly Issue1157 |
||||||
|
{ |
||||||
|
.hash algorithm 0x00008004 // SHA1 |
||||||
|
.ver 1:0:0:0 |
||||||
|
} |
||||||
|
|
||||||
|
.module Issue1157.exe |
||||||
|
// MVID: {4C6C7F98-AEB2-4A19-BE6F-43171E6113F1} |
||||||
|
.corflags 0x00020003 // ILOnly, Required32Bit, Preferred32Bit |
||||||
|
|
||||||
|
.class private auto ansi abstract beforefieldinit Issue1157.BaseClass |
||||||
|
extends [mscorlib]System.Object |
||||||
|
{ |
||||||
|
// Methods |
||||||
|
.method public hidebysig specialname newslot abstract virtual |
||||||
|
instance void add_IDontKnowMeHereOut ( |
||||||
|
class [mscorlib]System.EventHandler 'value' |
||||||
|
) cil managed |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||||
|
01 00 00 00 |
||||||
|
) |
||||||
|
} // end of method BaseClass::add_IDontKnowMeHereOut |
||||||
|
|
||||||
|
.method public hidebysig specialname newslot abstract virtual |
||||||
|
instance void remove_IDontKnowMeHereOut ( |
||||||
|
class [mscorlib]System.EventHandler 'value' |
||||||
|
) cil managed |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||||
|
01 00 00 00 |
||||||
|
) |
||||||
|
} // end of method BaseClass::remove_IDontKnowMeHereOut |
||||||
|
|
||||||
|
.method family hidebysig specialname rtspecialname |
||||||
|
instance void .ctor () cil managed |
||||||
|
{ |
||||||
|
// Method begins at RVA 0x2063 |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
|
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void [mscorlib]System.Object::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method BaseClass::.ctor |
||||||
|
|
||||||
|
// Events |
||||||
|
.event [mscorlib]System.EventHandler IDontKnowMeHereOut |
||||||
|
{ |
||||||
|
.addon instance void Issue1157.BaseClass::add_IDontKnowMeHereOut(class [mscorlib]System.EventHandler) |
||||||
|
.removeon instance void Issue1157.BaseClass::remove_IDontKnowMeHereOut(class [mscorlib]System.EventHandler) |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} // end of class Issue1157.BaseClass |
||||||
|
|
||||||
|
.class private auto ansi beforefieldinit Issue1157.OtherClass |
||||||
|
extends Issue1157.BaseClass |
||||||
|
{ |
||||||
|
// Fields |
||||||
|
.field private class [mscorlib]System.EventHandler IDontKnowMeHereOut |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||||
|
01 00 00 00 |
||||||
|
) |
||||||
|
.custom instance void [mscorlib]System.Diagnostics.DebuggerBrowsableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggerBrowsableState) = ( |
||||||
|
01 00 00 00 00 00 00 00 |
||||||
|
) |
||||||
|
|
||||||
|
// Methods |
||||||
|
.method public hidebysig specialname virtual |
||||||
|
instance void add_IDontKnowMeHereOut ( |
||||||
|
class [mscorlib]System.EventHandler 'value' |
||||||
|
) cil managed |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||||
|
01 00 00 00 |
||||||
|
) |
||||||
|
// Method begins at RVA 0x206c |
||||||
|
// Code size 41 (0x29) |
||||||
|
.maxstack 3 |
||||||
|
.locals init ( |
||||||
|
[0] class [mscorlib]System.EventHandler, |
||||||
|
[1] class [mscorlib]System.EventHandler, |
||||||
|
[2] class [mscorlib]System.EventHandler |
||||||
|
) |
||||||
|
|
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: ldfld class [mscorlib]System.EventHandler Issue1157.OtherClass::IDontKnowMeHereOut |
||||||
|
IL_0006: stloc.0 |
||||||
|
// loop start (head: IL_0007) |
||||||
|
IL_0007: ldloc.0 |
||||||
|
IL_0008: stloc.1 |
||||||
|
IL_0009: ldloc.1 |
||||||
|
IL_000a: ldarg.1 |
||||||
|
IL_000b: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate) |
||||||
|
IL_0010: castclass [mscorlib]System.EventHandler |
||||||
|
IL_0015: stloc.2 |
||||||
|
IL_0016: ldarg.0 |
||||||
|
IL_0017: ldflda class [mscorlib]System.EventHandler Issue1157.OtherClass::IDontKnowMeHereOut |
||||||
|
IL_001c: ldloc.2 |
||||||
|
IL_001d: ldloc.1 |
||||||
|
IL_001e: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [mscorlib]System.EventHandler>(!!0&, !!0, !!0) |
||||||
|
IL_0023: stloc.0 |
||||||
|
IL_0024: ldloc.0 |
||||||
|
IL_0025: ldloc.1 |
||||||
|
IL_0026: bne.un.s IL_0007 |
||||||
|
// end loop |
||||||
|
IL_0028: ret |
||||||
|
} // end of method OtherClass::add_IDontKnowMeHereOut |
||||||
|
|
||||||
|
.method public hidebysig specialname virtual |
||||||
|
instance void remove_IDontKnowMeHereOut ( |
||||||
|
class [mscorlib]System.EventHandler 'value' |
||||||
|
) cil managed |
||||||
|
{ |
||||||
|
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( |
||||||
|
01 00 00 00 |
||||||
|
) |
||||||
|
// Method begins at RVA 0x20a4 |
||||||
|
// Code size 41 (0x29) |
||||||
|
.maxstack 3 |
||||||
|
.locals init ( |
||||||
|
[0] class [mscorlib]System.EventHandler, |
||||||
|
[1] class [mscorlib]System.EventHandler, |
||||||
|
[2] class [mscorlib]System.EventHandler |
||||||
|
) |
||||||
|
|
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: ldfld class [mscorlib]System.EventHandler Issue1157.OtherClass::IDontKnowMeHereOut |
||||||
|
IL_0006: stloc.0 |
||||||
|
// loop start (head: IL_0007) |
||||||
|
IL_0007: ldloc.0 |
||||||
|
IL_0008: stloc.1 |
||||||
|
IL_0009: ldloc.1 |
||||||
|
IL_000a: ldarg.1 |
||||||
|
IL_000b: call class [mscorlib]System.Delegate [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate) |
||||||
|
IL_0010: castclass [mscorlib]System.EventHandler |
||||||
|
IL_0015: stloc.2 |
||||||
|
IL_0016: ldarg.0 |
||||||
|
IL_0017: ldflda class [mscorlib]System.EventHandler Issue1157.OtherClass::IDontKnowMeHereOut |
||||||
|
IL_001c: ldloc.2 |
||||||
|
IL_001d: ldloc.1 |
||||||
|
IL_001e: call !!0 [mscorlib]System.Threading.Interlocked::CompareExchange<class [mscorlib]System.EventHandler>(!!0&, !!0, !!0) |
||||||
|
IL_0023: stloc.0 |
||||||
|
IL_0024: ldloc.0 |
||||||
|
IL_0025: ldloc.1 |
||||||
|
IL_0026: bne.un.s IL_0007 |
||||||
|
// end loop |
||||||
|
IL_0028: ret |
||||||
|
} // end of method OtherClass::remove_IDontKnowMeHereOut |
||||||
|
|
||||||
|
.method public hidebysig specialname rtspecialname |
||||||
|
instance void .ctor () cil managed |
||||||
|
{ |
||||||
|
// Method begins at RVA 0x20d9 |
||||||
|
// Code size 8 (0x8) |
||||||
|
.maxstack 8 |
||||||
|
|
||||||
|
IL_0000: ldarg.0 |
||||||
|
IL_0001: call instance void Issue1157.BaseClass::.ctor() |
||||||
|
IL_0006: nop |
||||||
|
IL_0007: ret |
||||||
|
} // end of method OtherClass::.ctor |
||||||
|
|
||||||
|
// Events |
||||||
|
.event [mscorlib]System.EventHandler IDontKnowMeHereOut |
||||||
|
{ |
||||||
|
.addon instance void Issue1157.OtherClass::add_IDontKnowMeHereOut(class [mscorlib]System.EventHandler) |
||||||
|
.removeon instance void Issue1157.OtherClass::remove_IDontKnowMeHereOut(class [mscorlib]System.EventHandler) |
||||||
|
} |
||||||
|
|
||||||
|
} // end of class Issue1157.OtherClass |
Loading…
Reference in new issue