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

Commit 94b0badc authored by Wei Jia's avatar Wei Jia
Browse files

ABuffer: reset members when memory allocation fails.

Bug: 22077698
Change-Id: I2beb724662d041ad2339d0f4c7f983e7ac5e5e6f
parent f8f669d7
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -25,12 +25,17 @@ namespace android {

ABuffer::ABuffer(size_t capacity)
    : mMediaBufferBase(NULL),
      mData(malloc(capacity)),
      mCapacity(capacity),
      mRangeOffset(0),
      mRangeLength(capacity),
      mInt32Data(0),
      mOwnsData(true) {
    mData = malloc(capacity);
    if (mData == NULL) {
        mCapacity = 0;
        mRangeLength = 0;
    } else {
        mCapacity = capacity;
        mRangeLength = capacity;
    }
}

ABuffer::ABuffer(void *data, size_t capacity)
@@ -47,6 +52,9 @@ ABuffer::ABuffer(void *data, size_t capacity)
sp<ABuffer> ABuffer::CreateAsCopy(const void *data, size_t capacity)
{
    sp<ABuffer> res = new ABuffer(capacity);
    if (res->base() == NULL) {
        return NULL;
    }
    memcpy(res->data(), data, capacity);
    return res;
}