Loading core/java/android/app/LoadedApk.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -901,6 +901,7 @@ public final class LoadedApk { private RuntimeException mUnbindLocation; private RuntimeException mUnbindLocation; private boolean mDied; private boolean mDied; private boolean mForgotten; private static class ConnectionInfo { private static class ConnectionInfo { IBinder binder; IBinder binder; Loading Loading @@ -959,6 +960,7 @@ public final class LoadedApk { ci.binder.unlinkToDeath(ci.deathMonitor, 0); ci.binder.unlinkToDeath(ci.deathMonitor, 0); } } mActiveConnections.clear(); mActiveConnections.clear(); mForgotten = true; } } } } Loading Loading @@ -1020,6 +1022,11 @@ public final class LoadedApk { ServiceDispatcher.ConnectionInfo info; ServiceDispatcher.ConnectionInfo info; synchronized (this) { synchronized (this) { if (mForgotten) { // We unbound before receiving the connection; ignore // any connection received. return; } old = mActiveConnections.get(name); old = mActiveConnections.get(name); if (old != null && old.binder == service) { if (old != null && old.binder == service) { // Huh, already have this one. Oh well! // Huh, already have this one. Oh well! Loading Loading
core/java/android/app/LoadedApk.java +7 −0 Original line number Original line Diff line number Diff line Loading @@ -901,6 +901,7 @@ public final class LoadedApk { private RuntimeException mUnbindLocation; private RuntimeException mUnbindLocation; private boolean mDied; private boolean mDied; private boolean mForgotten; private static class ConnectionInfo { private static class ConnectionInfo { IBinder binder; IBinder binder; Loading Loading @@ -959,6 +960,7 @@ public final class LoadedApk { ci.binder.unlinkToDeath(ci.deathMonitor, 0); ci.binder.unlinkToDeath(ci.deathMonitor, 0); } } mActiveConnections.clear(); mActiveConnections.clear(); mForgotten = true; } } } } Loading Loading @@ -1020,6 +1022,11 @@ public final class LoadedApk { ServiceDispatcher.ConnectionInfo info; ServiceDispatcher.ConnectionInfo info; synchronized (this) { synchronized (this) { if (mForgotten) { // We unbound before receiving the connection; ignore // any connection received. return; } old = mActiveConnections.get(name); old = mActiveConnections.get(name); if (old != null && old.binder == service) { if (old != null && old.binder == service) { // Huh, already have this one. Oh well! // Huh, already have this one. Oh well! Loading