summaryrefslogtreecommitdiffstats
path: root/location
diff options
context:
space:
mode:
authorSuchi Amalapurapu <asuchitra@google.com>2009-06-30 21:36:16 -0700
committerSuchi Amalapurapu <asuchitra@google.com>2009-07-01 12:55:30 -0700
commitfff2fda0199dedbf1079454dca98a81190dce765 (patch)
treec45c5960e5c3469b36b5d728378a1aa901d1ec4e /location
parentc56096fe1fe3486102079f06ca5de3e2bef12e47 (diff)
downloadframeworks_base-fff2fda0199dedbf1079454dca98a81190dce765.zip
frameworks_base-fff2fda0199dedbf1079454dca98a81190dce765.tar.gz
frameworks_base-fff2fda0199dedbf1079454dca98a81190dce765.tar.bz2
Fix memory leaks in system_server
unlink DeathRecipients in a whole bunch of places to avoid memory leaks
Diffstat (limited to 'location')
-rwxr-xr-xlocation/java/com/android/internal/location/GpsLocationProvider.java3
-rw-r--r--location/java/com/android/internal/location/LocationProviderProxy.java7
2 files changed, 10 insertions, 0 deletions
diff --git a/location/java/com/android/internal/location/GpsLocationProvider.java b/location/java/com/android/internal/location/GpsLocationProvider.java
index edd1ea0..4a51e31 100755
--- a/location/java/com/android/internal/location/GpsLocationProvider.java
+++ b/location/java/com/android/internal/location/GpsLocationProvider.java
@@ -617,6 +617,9 @@ public class GpsLocationProvider extends ILocationProvider.Stub {
synchronized(mListeners) {
mListeners.remove(this);
}
+ if (mListener != null) {
+ mListener.asBinder().unlinkToDeath(this, 0);
+ }
}
}
diff --git a/location/java/com/android/internal/location/LocationProviderProxy.java b/location/java/com/android/internal/location/LocationProviderProxy.java
index bd7088c..4ae424a 100644
--- a/location/java/com/android/internal/location/LocationProviderProxy.java
+++ b/location/java/com/android/internal/location/LocationProviderProxy.java
@@ -53,6 +53,12 @@ public class LocationProviderProxy implements IBinder.DeathRecipient {
}
}
+ public void unlinkProvider() {
+ if (mProvider != null) {
+ mProvider.asBinder().unlinkToDeath(this, 0);
+ }
+ }
+
public String getName() {
return mName;
}
@@ -255,5 +261,6 @@ public class LocationProviderProxy implements IBinder.DeathRecipient {
public void binderDied() {
Log.w(TAG, "Location Provider " + mName + " died");
mDead = true;
+ mProvider.asBinder().unlinkToDeath(this, 0);
}
}