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

Commit e103d82f authored by Ray Essick's avatar Ray Essick
Browse files

Better return value checking

clang-tidy warned about unknowability of returned buffer by parameter
after acquire_buffer() calls despite checking return code. Add appropriate
tests.  Wider examination pointed out several places where return code
was not checked and where early out code was missing out on releasing
other buffers.

Bug: 263274255
Test: atest CtsMediaExtractorTestCases
Test: atest CtsMediaV2TestCases
Change-Id: I445808cc58f11321a6cc4a3b615bf352b0b2a419
parent 520c3a58
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -63,12 +63,15 @@ status_t SineSource::read(
        MediaBufferBase **out, const ReadOptions * /* options */) {
    *out = NULL;

    MediaBufferBase *buffer;
    MediaBufferBase *buffer = nullptr;
    status_t err = mGroup->acquire_buffer(&buffer);

    if (err != OK) {
        return err;
    }
    if (buffer == nullptr) {
        return AMEDIA_ERROR_UNKNOWN;
    }

    size_t frameSize = mNumChannels * sizeof(int16_t);
    size_t numFramesPerBuffer = buffer->size() / frameSize;
+3 −0
Original line number Diff line number Diff line
@@ -89,6 +89,9 @@ public:
        if (err != OK) {
            return err;
        }
        if (buffer == nullptr) {
            return AMEDIA_ERROR_UNKNOWN;
        }

        char x = (char)((double)rand() / RAND_MAX * 255);
        memset((*buffer)->data(), x, mSize);
+2 −2
Original line number Diff line number Diff line
@@ -310,9 +310,9 @@ media_status_t AACSource::read(
        return AMEDIA_ERROR_END_OF_STREAM;
    }

    MediaBufferHelper *buffer;
    MediaBufferHelper *buffer = nullptr;
    status_t err = mBufferGroup->acquire_buffer(&buffer);
    if (err != OK) {
    if (err != OK || buffer == nullptr) {
        return AMEDIA_ERROR_UNKNOWN;
    }

+2 −2
Original line number Diff line number Diff line
@@ -341,9 +341,9 @@ media_status_t AMRSource::read(
        return AMEDIA_ERROR_MALFORMED;
    }

    MediaBufferHelper *buffer;
    MediaBufferHelper *buffer = nullptr;
    status_t err = mBufferGroup->acquire_buffer(&buffer);
    if (err != OK) {
    if (err != OK || buffer == nullptr) {
        return AMEDIA_ERROR_UNKNOWN;
    }

+2 −2
Original line number Diff line number Diff line
@@ -614,9 +614,9 @@ MediaBufferHelper *FLACParser::readBuffer(bool doSeek, FLAC__uint64 sample)
    }
    // acquire a media buffer
    CHECK(mGroup != NULL);
    MediaBufferHelper *buffer;
    MediaBufferHelper *buffer = nullptr;
    status_t err = mGroup->acquire_buffer(&buffer);
    if (err != OK) {
    if (err != OK || buffer == nullptr) {
        return NULL;
    }
    const size_t bufferSize = blocksize * getChannels() * getOutputSampleSize();
Loading