// Token: 0x06006203 RID: 25091 RVA: 0x0014D2A0 File Offset: 0x0014B4A0 internal void AddDelegate(Delegate d) { int num = 0; if (this._delegateWrappers != null) { num = this._delegateWrappers.Length; } for (int i = 0; i < num; i++) { if (this._delegateWrappers[i].Delegate.GetType() == d.GetType()) { this._delegateWrappers[i].Delegate = Delegate.Combine(this._delegateWrappers[i].Delegate, d); return; } } ComEventsMethod.DelegateWrapper[] array = new ComEventsMethod.DelegateWrapper[num + 1]; if (num > 0) { this._delegateWrappers.CopyTo(array, 0); } ComEventsMethod.DelegateWrapper delegateWrapper = new ComEventsMethod.DelegateWrapper(d); array[num] = delegateWrapper; this._delegateWrappers = array; }
internal void AddDelegate(Delegate d) { int index1 = 0; if (this._delegateWrappers != null) { index1 = this._delegateWrappers.Length; } for (int index2 = 0; index2 < index1; ++index2) { if (this._delegateWrappers[index2].Delegate.GetType() == d.GetType()) { this._delegateWrappers[index2].Delegate = Delegate.Combine(this._delegateWrappers[index2].Delegate, d); return; } } ComEventsMethod.DelegateWrapper[] delegateWrapperArray = new ComEventsMethod.DelegateWrapper[index1 + 1]; if (index1 > 0) { this._delegateWrappers.CopyTo((Array)delegateWrapperArray, 0); } ComEventsMethod.DelegateWrapper delegateWrapper = new ComEventsMethod.DelegateWrapper(d); delegateWrapperArray[index1] = delegateWrapper; this._delegateWrappers = delegateWrapperArray; }
// Token: 0x06006204 RID: 25092 RVA: 0x0014D338 File Offset: 0x0014B538 internal void RemoveDelegate(Delegate d) { int num = this._delegateWrappers.Length; int num2 = -1; for (int i = 0; i < num; i++) { if (this._delegateWrappers[i].Delegate.GetType() == d.GetType()) { num2 = i; break; } } if (num2 < 0) { return; } Delegate @delegate = Delegate.Remove(this._delegateWrappers[num2].Delegate, d); if (@delegate != null) { this._delegateWrappers[num2].Delegate = @delegate; return; } if (num == 1) { this._delegateWrappers = null; return; } ComEventsMethod.DelegateWrapper[] array = new ComEventsMethod.DelegateWrapper[num - 1]; int j; for (j = 0; j < num2; j++) { array[j] = this._delegateWrappers[j]; } while (j < num - 1) { array[j] = this._delegateWrappers[j + 1]; j++; } this._delegateWrappers = array; }
internal void RemoveDelegate(Delegate d) { int length = this._delegateWrappers.Length; int index1 = -1; for (int index2 = 0; index2 < length; ++index2) { if (this._delegateWrappers[index2].Delegate.GetType() == d.GetType()) { index1 = index2; break; } } if (index1 < 0) { return; } Delegate @delegate = Delegate.Remove(this._delegateWrappers[index1].Delegate, d); if (@delegate != null) { this._delegateWrappers[index1].Delegate = @delegate; } else if (length == 1) { this._delegateWrappers = (ComEventsMethod.DelegateWrapper[])null; } else { ComEventsMethod.DelegateWrapper[] delegateWrapperArray = new ComEventsMethod.DelegateWrapper[length - 1]; int index2; for (index2 = 0; index2 < index1; ++index2) { delegateWrapperArray[index2] = this._delegateWrappers[index2]; } for (; index2 < length - 1; ++index2) { delegateWrapperArray[index2] = this._delegateWrappers[index2 + 1]; } this._delegateWrappers = delegateWrapperArray; } }