am a0c2b539: Merge "Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call." into gingerbread

Merge commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2' into gingerbread-plus-aosp

* commit 'a0c2b53966238125143dec01d3f2598a8b9e33a2':
  Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
This commit is contained in:
Eric Laurent
2010-07-01 11:56:11 -07:00
committed by Android Git Automerger

View File

@ -16,6 +16,7 @@
package android.media;
import java.util.NoSuchElementException;
import android.app.ActivityManagerNative;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@ -1016,7 +1017,11 @@ public class AudioService extends IAudioService.Stub {
} else {
mStartcount--;
if (mStartcount == 0) {
mCb.unlinkToDeath(this, 0);
try {
mCb.unlinkToDeath(this, 0);
} catch (NoSuchElementException e) {
Log.w(TAG, "decCount() going to 0 but not registered to binder");
}
}
requestScoState(BluetoothHeadset.AUDIO_STATE_DISCONNECTED);
}
@ -1025,8 +1030,14 @@ public class AudioService extends IAudioService.Stub {
public void clearCount(boolean stopSco) {
synchronized(mScoClients) {
if (mStartcount != 0) {
try {
mCb.unlinkToDeath(this, 0);
} catch (NoSuchElementException e) {
Log.w(TAG, "clearCount() mStartcount: "+mStartcount+" != 0 but not registered to binder");
}
}
mStartcount = 0;
mCb.unlinkToDeath(this, 0);
if (stopSco) {
requestScoState(BluetoothHeadset.AUDIO_STATE_DISCONNECTED);
}