summaryrefslogtreecommitdiff
path: root/services/displayservice/DisplayEventReceiver.cpp
diff options
context:
space:
mode:
author Peiyong Lin <lpy@google.com> 2018-04-06 15:33:08 -0700
committer Peiyong Lin <lpy@google.com> 2018-04-06 16:08:01 -0700
commit9d2c1d849311cc80cacac61836833514da483ed8 (patch)
treea35c73e5b37f8180450e7a8a0e19c1c11935c54d /services/displayservice/DisplayEventReceiver.cpp
parentc650f6215df216542f16918c8477ea2f73e9214d (diff)
[DisplayService] Check hidl return value.
Handle the returned status from HIDL. Test: manual BUG: 72423188 Change-Id: I49010fbb56b149797430946054e93a00e2b3677c
Diffstat (limited to 'services/displayservice/DisplayEventReceiver.cpp')
-rw-r--r--services/displayservice/DisplayEventReceiver.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/services/displayservice/DisplayEventReceiver.cpp b/services/displayservice/DisplayEventReceiver.cpp
index 5993e443e6..2bb74c2cad 100644
--- a/services/displayservice/DisplayEventReceiver.cpp
+++ b/services/displayservice/DisplayEventReceiver.cpp
@@ -102,10 +102,20 @@ int DisplayEventReceiver::AttachedEvent::handleEvent(int fd, int events, void* /
switch(buf[i].header.type) {
case FwkReceiver::DISPLAY_EVENT_VSYNC: {
- mCallback->onVsync(timestamp, event.vsync.count);
+ auto ret = mCallback->onVsync(timestamp, event.vsync.count);
+ if (!ret.isOk()) {
+ LOG(ERROR) << "AttachedEvent handleEvent fails on onVsync callback"
+ << " because of " << ret.description();
+ return 0; // remove the callback
+ }
} break;
case FwkReceiver::DISPLAY_EVENT_HOTPLUG: {
- mCallback->onHotplug(timestamp, event.hotplug.connected);
+ auto ret = mCallback->onHotplug(timestamp, event.hotplug.connected);
+ if (!ret.isOk()) {
+ LOG(ERROR) << "AttachedEvent handleEvent fails on onHotplug callback"
+ << " because of " << ret.description();
+ return 0; // remove the callback
+ }
} break;
default: {
LOG(ERROR) << "AttachedEvent handleEvent unknown type: " << type;