diff options
author | Paolo Molaro <lupus@oddwiz.org> | 2006-12-12 21:20:42 +0300 |
---|---|---|
committer | Paolo Molaro <lupus@oddwiz.org> | 2006-12-12 21:20:42 +0300 |
commit | d0bab196c35defc36b314119411ca7bbf7801974 (patch) | |
tree | 299a1623b449511eb8c5102c431d8d1ed0e5526b /mcs/ilasm | |
parent | 7e425865267e2cabe1a44db74379909479e75fd0 (diff) |
Tue Dec 12 19:19:04 CET 2006 Paolo Molaro <lupus@ximian.com>
* EventDef.cs: support more than one .other method in events.
svn path=/trunk/mcs/; revision=69422
Diffstat (limited to 'mcs/ilasm')
-rw-r--r-- | mcs/ilasm/codegen/ChangeLog | 5 | ||||
-rw-r--r-- | mcs/ilasm/codegen/EventDef.cs | 14 |
2 files changed, 14 insertions, 5 deletions
diff --git a/mcs/ilasm/codegen/ChangeLog b/mcs/ilasm/codegen/ChangeLog index e85763a4ab3..048659380ab 100644 --- a/mcs/ilasm/codegen/ChangeLog +++ b/mcs/ilasm/codegen/ChangeLog @@ -1,3 +1,8 @@ + +Tue Dec 12 19:19:04 CET 2006 Paolo Molaro <lupus@ximian.com> + + * EventDef.cs: support more than one .other method in events. + 2006-11-09 Ankit Jain <jankit@novell.com> * CodeGen.cs (CodeGen.BeginAssemblyRef): Add param for attributes. diff --git a/mcs/ilasm/codegen/EventDef.cs b/mcs/ilasm/codegen/EventDef.cs index 28f8dc4c4a2..66ba98614b9 100644 --- a/mcs/ilasm/codegen/EventDef.cs +++ b/mcs/ilasm/codegen/EventDef.cs @@ -24,7 +24,7 @@ namespace Mono.ILASM { private MethodRef addon; private MethodRef fire; - private MethodRef other; + private ArrayList other_list; private MethodRef removeon; public EventDef (FeatureAttr attr, BaseTypeRef type, string name) @@ -89,9 +89,11 @@ namespace Mono.ILASM { event_def.AddFire (AsMethodDef (fire.PeapiMethod, "fire")); } - if (other != null) { - other.Resolve (code_gen); - event_def.AddOther (AsMethodDef (other.PeapiMethod, "other")); + if (other_list != null) { + foreach (MethodRef otherm in other_list) { + otherm.Resolve (code_gen); + event_def.AddOther (AsMethodDef (otherm.PeapiMethod, "other")); + } } if (removeon != null) { @@ -112,7 +114,9 @@ namespace Mono.ILASM { public void AddOther (MethodRef method_ref) { - other = method_ref; + if (other_list == null) + other_list = new ArrayList (); + other_list.Add (method_ref); } public void AddRemoveon (MethodRef method_ref) |