Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 249dbced authored by Ady Abraham's avatar Ady Abraham Committed by Android (Google) Code Review
Browse files

Merge "DisplayEventReceiver: improve error handling"

parents 7c60b886 745f7b59
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -40,7 +40,13 @@ DisplayEventReceiver::DisplayEventReceiver(
        mEventConnection = sf->createDisplayEventConnection(vsyncSource, eventRegistration);
        if (mEventConnection != nullptr) {
            mDataChannel = std::make_unique<gui::BitTube>();
            mEventConnection->stealReceiveChannel(mDataChannel.get());
            const auto status = mEventConnection->stealReceiveChannel(mDataChannel.get());
            if (!status.isOk()) {
                ALOGE("stealReceiveChannel failed: %s", status.toString8().c_str());
                mInitError = std::make_optional<status_t>(status.transactionError());
                mDataChannel.reset();
                mEventConnection.clear();
            }
        }
    }
}
@@ -51,12 +57,11 @@ DisplayEventReceiver::~DisplayEventReceiver() {
status_t DisplayEventReceiver::initCheck() const {
    if (mDataChannel != nullptr)
        return NO_ERROR;
    return NO_INIT;
    return mInitError.has_value() ? mInitError.value() : NO_INIT;
}

int DisplayEventReceiver::getFd() const {
    if (mDataChannel == nullptr)
        return NO_INIT;
    if (mDataChannel == nullptr) return mInitError.has_value() ? mInitError.value() : NO_INIT;

    return mDataChannel->getFd();
}
@@ -69,7 +74,7 @@ status_t DisplayEventReceiver::setVsyncRate(uint32_t count) {
        mEventConnection->setVsyncRate(count);
        return NO_ERROR;
    }
    return NO_INIT;
    return mInitError.has_value() ? mInitError.value() : NO_INIT;
}

status_t DisplayEventReceiver::requestNextVsync() {
@@ -77,7 +82,7 @@ status_t DisplayEventReceiver::requestNextVsync() {
        mEventConnection->requestNextVsync();
        return NO_ERROR;
    }
    return NO_INIT;
    return mInitError.has_value() ? mInitError.value() : NO_INIT;
}

status_t DisplayEventReceiver::getLatestVsyncEventData(VsyncEventData* outVsyncEventData) const {
+1 −0
Original line number Diff line number Diff line
@@ -180,6 +180,7 @@ public:
private:
    sp<IDisplayEventConnection> mEventConnection;
    std::unique_ptr<gui::BitTube> mDataChannel;
    std::optional<status_t> mInitError;
};

// ----------------------------------------------------------------------------