private void unsubscribeByEventType ( Object subscriber , Class < ? > eventType ) { List < Subscription > subscriptions = subscriptionsByEventType . get ( eventType ) ; if ( subscriptions != null ) { int size = subscriptions . size ( ) ; for ( int i = 0 ; i < size ; i ++ ) { Subscription subscription = subscriptions . get ( i ) ; if ( subscription . subscriber == subscriber ) { subscription . active = false ; subscriptions . remove ( i ) ; i -- ; size -- ; } } } }
Only updates subscriptionsByEventType not typesBySubscriber! Caller must update typesBySubscriber .