summaryrefslogtreecommitdiffstats
path: root/location/java
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-01 12:52:39 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-07-01 12:52:39 -0700
commit54af78a3f7064e04d7ebd64c985d4149f9f7b05c (patch)
tree319681ef2905159095a4aa89f1165058b22bbca8 /location/java
parent49401ddb9ac11ad5caead4e4cefcaa81d2418ed2 (diff)
parentfff2fda0199dedbf1079454dca98a81190dce765 (diff)
downloadframeworks_base-54af78a3f7064e04d7ebd64c985d4149f9f7b05c.zip
frameworks_base-54af78a3f7064e04d7ebd64c985d4149f9f7b05c.tar.gz
frameworks_base-54af78a3f7064e04d7ebd64c985d4149f9f7b05c.tar.bz2
Merge change 5950 into donut
* changes: Fix memory leaks in system_server unlink DeathRecipients in a whole bunch of places to avoid memory leaks
Diffstat (limited to 'location/java')
-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);
}
}