File tree Expand file tree Collapse file tree 1 file changed +6
-2
lines changed
wifi/java/android/net/wifi/p2p Expand file tree Collapse file tree 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -380,6 +380,7 @@ public static class Channel {
380380 mHandler = new P2pHandler (looper );
381381 mChannelListener = l ;
382382 }
383+ private final static int INVALID_LISTENER_KEY = 0 ;
383384 private ChannelListener mChannelListener ;
384385 private HashMap <Integer , Object > mListenerMap = new HashMap <Integer , Object >();
385386 private Object mListenerMapLock = new Object ();
@@ -450,16 +451,19 @@ public void handleMessage(Message message) {
450451 }
451452
452453 int putListener (Object listener ) {
453- if (listener == null ) return 0 ;
454+ if (listener == null ) return INVALID_LISTENER_KEY ;
454455 int key ;
455456 synchronized (mListenerMapLock ) {
456- key = mListenerKey ++;
457+ do {
458+ key = mListenerKey ++;
459+ } while (key == INVALID_LISTENER_KEY );
457460 mListenerMap .put (key , listener );
458461 }
459462 return key ;
460463 }
461464
462465 Object getListener (int key ) {
466+ if (key == INVALID_LISTENER_KEY ) return null ;
463467 synchronized (mListenerMapLock ) {
464468 return mListenerMap .remove (key );
465469 }
You can’t perform that action at this time.
0 commit comments