From 9d2c1d849311cc80cacac61836833514da483ed8 Mon Sep 17 00:00:00 2001 From: Peiyong Lin Date: Fri, 6 Apr 2018 15:33:08 -0700 Subject: [DisplayService] Check hidl return value. Handle the returned status from HIDL. Test: manual BUG: 72423188 Change-Id: I49010fbb56b149797430946054e93a00e2b3677c --- services/displayservice/DisplayEventReceiver.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'services/displayservice/DisplayEventReceiver.cpp') 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; -- cgit v1.2.3-59-g8ed1b