diff options
author | 2018-04-06 15:33:08 -0700 | |
---|---|---|
committer | 2018-04-06 16:08:01 -0700 | |
commit | 9d2c1d849311cc80cacac61836833514da483ed8 (patch) | |
tree | a35c73e5b37f8180450e7a8a0e19c1c11935c54d /services/displayservice/DisplayEventReceiver.cpp | |
parent | c650f6215df216542f16918c8477ea2f73e9214d (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.cpp | 14 |
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; |