am d68cda47: An attempt to unregister a handler that\'s no longer registered should not cause an assertion.

Merge commit 'd68cda472a3646966a203338ccac04f0783293b7' into gingerbread-plus-aosp

* commit 'd68cda472a3646966a203338ccac04f0783293b7':
  An attempt to unregister a handler that's no longer registered should not cause an assertion.
This commit is contained in:
Andreas Huber
2010-10-18 15:17:07 -07:00
committed by Android Git Automerger

View File

@@ -54,7 +54,10 @@ void ALooperRoster::unregisterHandler(ALooper::handler_id handlerID) {
Mutex::Autolock autoLock(mLock);
ssize_t index = mHandlers.indexOfKey(handlerID);
CHECK_GE(index, 0);
if (index < 0) {
return;
}
const HandlerInfo &info = mHandlers.valueAt(index);
@@ -84,7 +87,8 @@ void ALooperRoster::postMessage(
if (looper == NULL) {
LOGW("failed to post message. "
"Target handler still registered, but object gone.");
"Target handler %d still registered, but object gone.",
msg->target());
mHandlers.removeItemsAt(index);
return;
@@ -111,7 +115,8 @@ void ALooperRoster::deliverMessage(const sp<AMessage> &msg) {
if (handler == NULL) {
LOGW("failed to deliver message. "
"Target handler registered, but object gone.");
"Target handler %d registered, but object gone.",
msg->target());
mHandlers.removeItemsAt(index);
return;