graphics: composer should not die with its client
Fail elegantly when any of IComposerCallback method returns an
error.
Bug: 35334576
Test: manual
Change-Id: If84a265d3bfa01178ea7316d7fe3ba7941ad127f
diff --git a/graphics/composer/2.1/default/ComposerClient.cpp b/graphics/composer/2.1/default/ComposerClient.cpp
index 7a2cb25..72ba8f8 100644
--- a/graphics/composer/2.1/default/ComposerClient.cpp
+++ b/graphics/composer/2.1/default/ComposerClient.cpp
@@ -230,6 +230,8 @@
ComposerClient::~ComposerClient()
{
+ ALOGD("client destroyed");
+
mHal.enableCallback(false);
mHal.removeClient();
@@ -275,17 +277,23 @@
}
}
- mCallback->onHotplug(display, connected);
+ auto ret = mCallback->onHotplug(display, connected);
+ ALOGE_IF(!ret.isOk(), "failed to send onHotplug: %s",
+ ret.description().c_str());
}
void ComposerClient::onRefresh(Display display)
{
- mCallback->onRefresh(display);
+ auto ret = mCallback->onRefresh(display);
+ ALOGE_IF(!ret.isOk(), "failed to send onRefresh: %s",
+ ret.description().c_str());
}
void ComposerClient::onVsync(Display display, int64_t timestamp)
{
- mCallback->onVsync(display, timestamp);
+ auto ret = mCallback->onVsync(display, timestamp);
+ ALOGE_IF(!ret.isOk(), "failed to send onVsync: %s",
+ ret.description().c_str());
}
Return<void> ComposerClient::registerCallback(