2008-02-16 Ivan N. Zlatev <contact@i-nz.net>
[mono.git] / mcs / class / System / System.ComponentModel / EventHandlerList.cs
index 06211f320a23c721c6e8d2a26806d9682d01d5a2..7dabcb3e2c3abf3a84a19eae4abd5031ecc412b5 100644 (file)
@@ -42,8 +42,6 @@ namespace System.ComponentModel {
        //   Longer description
        // </remarks>
        public sealed class EventHandlerList : IDisposable {
-               Hashtable table;
-               
                public EventHandlerList ()
                {
                        head = null;
@@ -70,6 +68,19 @@ namespace System.ComponentModel {
                        entry.value = Delegate.Combine (entry.value, value);
                }
 
+#if NET_2_0
+               public void AddHandlers (EventHandlerList listToAddFrom)
+               {
+                       if (listToAddFrom == null) {
+                               return;
+                       }
+
+                       for (ListNode entry = listToAddFrom.head; entry != null; entry = entry.next) {
+                               AddHandler (entry.key, entry.value);
+                       }
+               }
+#endif
+
                public void RemoveHandler (object key, Delegate value)
                {
                        ListNode entry = FindEntry (key);
@@ -85,9 +96,6 @@ namespace System.ComponentModel {
                }
                private ListNode FindEntry (object key)
                {
-                       if (key == null)
-                               throw new ArgumentNullException ("key", "Attempted lookup for a null key.");
-
                        for (ListNode entry = head; entry != null; entry = entry.next)
                                if (key == entry.key)
                                        return entry;