Skip to content

Commit 1d3d363

Browse files
committed
Handle GCed WeakReferences in removeObserver
WeakReferences always need to be null checked when getting it's value as it may have been garbage collected. Keeping the fix simple here for a fast fix. Kotlin has built-in observables so any future investment in this class should be done migrating to this.
1 parent 9e40a2a commit 1d3d363

File tree

1 file changed

+1
-0
lines changed

1 file changed

+1
-0
lines changed

OneSignalSDK/onesignal/src/main/java/com/onesignal/OSObservable.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ void addObserverStrong(ObserverType observer){
5555
void removeObserver(ObserverType observer) {
5656
for(int i = 0; i < observers.size(); i++) {
5757
Object anObserver = ((WeakReference)observers.get(i)).get();
58+
if (anObserver == null) continue;
5859
if (anObserver.equals(observer)) {
5960
observers.remove(i);
6061
break;

0 commit comments

Comments
 (0)