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

Commit 39f4bc12 authored by George Burgess IV's avatar George Burgess IV
Browse files

Fix memory leaks

These are `new`ed, but never passed to anything else. It looks like
simply stack allocating will do what we want here.

Caught by our static analyzer:

frameworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:524:5:
warning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]
frameworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:527:9:
warning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]
frameworks/av/media/libmediaplayer2/MediaPlayer2AudioOutput.cpp:529:9:
warning: Potential memory leak [clang-analyzer-cplusplus.NewDeleteLeaks]

Bug: None
Test: Ran the analyer again. It was happy.
Change-Id: I8f4cda4a5993f43ad50cf5a0d152ed7158d7c8e1
parent 0428b8e5
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -521,12 +521,15 @@ jobject MediaPlayer2AudioOutput::getRoutedDevice() {
status_t MediaPlayer2AudioOutput::addAudioDeviceCallback(jobject jRoutingDelegate) {
    ALOGV("addAudioDeviceCallback");
    Mutex::Autolock lock(mLock);
    jobject listener = (new JObjectHolder(
            JAudioTrack::getListener(jRoutingDelegate)))->getJObject();

    JObjectHolder listenerHolder{JAudioTrack::getListener(jRoutingDelegate)};
    jobject listener = listenerHolder.getJObject();
    if (JAudioTrack::findByKey(mRoutingDelegates, listener) == nullptr) {
        jobject handler = (new JObjectHolder(
                JAudioTrack::getHandler(jRoutingDelegate)))->getJObject();
        jobject routingDelegate = (new JObjectHolder(jRoutingDelegate))->getJObject();
        JObjectHolder handlerHolder{JAudioTrack::getHandler(jRoutingDelegate)};
        jobject handler = handlerHolder.getJObject();

        JObjectHolder routingDelegateHolder = JObjectHolder(jRoutingDelegate);
        jobject routingDelegate = routingDelegateHolder.getJObject();
        mRoutingDelegates.push_back(std::pair<jobject, jobject>(listener, routingDelegate));
        if (mJAudioTrack != nullptr) {
            return mJAudioTrack->addAudioDeviceCallback(routingDelegate, handler);