Skip to content

Commit 227dde2

Browse files
isheriffAndroid (Google) Code Review
authored andcommitted
Merge "Fix key handling"
2 parents 74e642b + b5e00bd commit 227dde2

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

wifi/java/android/net/wifi/p2p/WifiP2pManager.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)