private void ClearListenerOfList(ref EventHandlerRec list, object o) { var eventHandlerRec = list; while (eventHandlerRec != null && eventHandlerRec.Owner != o) { eventHandlerRec = eventHandlerRec.Next; } if (eventHandlerRec == null) { return; } var eventHandlerRec2 = list; if (eventHandlerRec2 == eventHandlerRec) { list = eventHandlerRec2.Next; return; } while (eventHandlerRec2 != null) { if (eventHandlerRec2.Next == eventHandlerRec) { eventHandlerRec2.Next = eventHandlerRec.Next; } else { eventHandlerRec2 = eventHandlerRec2.Next; } } }
public void AddNonSerializedListener(object owner, Action action) { var eventHandlerRec = new EventHandlerRec(owner, action); var nonSerializedListenerList = _nonSerializedListenerList; _nonSerializedListenerList = eventHandlerRec; eventHandlerRec.Next = nonSerializedListenerList; }
private void InvokeList(EventHandlerRec list) { while (list != null) { list.Action(); list = list.Next; } }