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

Commit b353fd97 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "Fix error reporting in Surface::cancelBuffer()" into honeycomb

parents e58a41aa a317f1ba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -233,7 +233,7 @@ private:
     *  private stuff...
     */
    void init();
    status_t validate() const;
    status_t validate(bool inCancelBuffer = false) const;
    sp<ISurface> getISurface() const;

    inline const GraphicBufferMapper& getBufferMapper() const { return mBufferMapper; }
+11 −18
Original line number Diff line number Diff line
@@ -466,7 +466,7 @@ bool Surface::isValid() {
    return mInitCheck == NO_ERROR;
}

status_t Surface::validate() const
status_t Surface::validate(bool inCancelBuffer) const
{
    // check that we initialized ourself properly
    if (mInitCheck != NO_ERROR) {
@@ -476,15 +476,6 @@ status_t Surface::validate() const

    // verify the identity of this surface
    uint32_t identity = mSharedBufferClient->getIdentity();

    // this is a bit of a (temporary) special case, identity==0 means that
    // no operation are allowed from the client (eg: dequeue/queue), this
    // is used with PUSH_BUFFER surfaces for instance
    if (identity == 0) {
        LOGE("[Surface] invalid operation (identity=%u)", mIdentity);
        return INVALID_OPERATION;
    }

    if (mIdentity != identity) {
        LOGE("[Surface] using an invalid surface, "
                "identity=%u should be %d",
@@ -492,17 +483,19 @@ status_t Surface::validate() const
        CallStack stack;
        stack.update();
        stack.dump("Surface");
        return NO_INIT;
        return BAD_INDEX;
    }

    // check the surface didn't become invalid
    status_t err = mSharedBufferClient->getStatus();
    if (err != NO_ERROR) {
        if (!inCancelBuffer) {
            LOGE("surface (identity=%u) is invalid, err=%d (%s)",
                    mIdentity, err, strerror(-err));
            CallStack stack;
            stack.update();
            stack.dump("Surface");
        }
        return err;
    }

@@ -633,12 +626,12 @@ int Surface::dequeueBuffer(android_native_buffer_t** buffer)

int Surface::cancelBuffer(android_native_buffer_t* buffer)
{
    status_t err = validate();
    status_t err = validate(true);
    switch (err) {
    case NO_ERROR:
        // no error, common case
        break;
    case INVALID_OPERATION:
    case BAD_INDEX:
        // legitimate errors here
        return err;
    default: