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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user