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

Commit 20854e60 authored by Pablo Ceballos's avatar Pablo Ceballos Committed by Android (Google) Code Review
Browse files

Merge "BQ: Handle errors in GraphicBuffer/Fence unflatten" into nyc-mr1-dev

parents ebe3d7a2 70636b33
Loading
Loading
Loading
Loading
+24 −7
Original line number Original line Diff line number Diff line
@@ -134,7 +134,11 @@ public:
        bool nonNull = reply.readInt32();
        bool nonNull = reply.readInt32();
        if (nonNull) {
        if (nonNull) {
            *fence = new Fence();
            *fence = new Fence();
            reply.read(**fence);
            result = reply.read(**fence);
            if (result != NO_ERROR) {
                fence->clear();
                return result;
            }
        }
        }
        result = reply.readInt32();
        result = reply.readInt32();
        return result;
        return result;
@@ -172,12 +176,21 @@ public:
            bool nonNull = reply.readInt32();
            bool nonNull = reply.readInt32();
            if (nonNull) {
            if (nonNull) {
                *outBuffer = new GraphicBuffer;
                *outBuffer = new GraphicBuffer;
                reply.read(**outBuffer);
                result = reply.read(**outBuffer);
                if (result != NO_ERROR) {
                    outBuffer->clear();
                    return result;
                }
            }
            }
            nonNull = reply.readInt32();
            nonNull = reply.readInt32();
            if (nonNull) {
            if (nonNull) {
                *outFence = new Fence;
                *outFence = new Fence;
                reply.read(**outFence);
                result = reply.read(**outFence);
                if (result != NO_ERROR) {
                    outBuffer->clear();
                    outFence->clear();
                    return result;
                }
            }
            }
        }
        }
        return result;
        return result;
@@ -561,9 +574,11 @@ status_t BnGraphicBufferProducer::onTransact(
        case ATTACH_BUFFER: {
        case ATTACH_BUFFER: {
            CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
            CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
            sp<GraphicBuffer> buffer = new GraphicBuffer();
            sp<GraphicBuffer> buffer = new GraphicBuffer();
            data.read(*buffer.get());
            status_t result = data.read(*buffer.get());
            int slot = 0;
            int slot = 0;
            int result = attachBuffer(&slot, buffer);
            if (result == NO_ERROR) {
                result = attachBuffer(&slot, buffer);
            }
            reply->writeInt32(slot);
            reply->writeInt32(slot);
            reply->writeInt32(result);
            reply->writeInt32(result);
            return NO_ERROR;
            return NO_ERROR;
@@ -584,8 +599,10 @@ status_t BnGraphicBufferProducer::onTransact(
            CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
            CHECK_INTERFACE(IGraphicBufferProducer, data, reply);
            int buf = data.readInt32();
            int buf = data.readInt32();
            sp<Fence> fence = new Fence();
            sp<Fence> fence = new Fence();
            data.read(*fence.get());
            status_t result = data.read(*fence.get());
            status_t result = cancelBuffer(buf, fence);
            if (result == NO_ERROR) {
                result = cancelBuffer(buf, fence);
            }
            reply->writeInt32(result);
            reply->writeInt32(result);
            return NO_ERROR;
            return NO_ERROR;
        }
        }