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

Commit 6795e89f authored by Yiwei Zhang's avatar Yiwei Zhang Committed by android-build-merger
Browse files

Merge "SF: Fix IGBP list leak" into pi-dev am: 891f1c0c

am: ea3f68ff

Change-Id: I73fc8f8d8698be6f1af21c966e01c88bb0e967c9
parents 42f65db0 ea3f68ff
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -317,8 +317,7 @@ SurfaceFlinger::SurfaceFlinger() : SurfaceFlinger(SkipInitialization) {
    mLayerTripleBufferingDisabled = atoi(value);
    mLayerTripleBufferingDisabled = atoi(value);
    ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering");
    ALOGI_IF(mLayerTripleBufferingDisabled, "Disabling Triple Buffering");


    // TODO (b/74616334): Reduce the default value once we isolate the leak
    const size_t defaultListSize = MAX_LAYERS;
    const size_t defaultListSize = 4 * MAX_LAYERS;
    auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize));
    auto listSize = property_get_int32("debug.sf.max_igbp_list_size", int32_t(defaultListSize));
    mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize;
    mMaxGraphicBufferProducerListSize = (listSize > 0) ? size_t(listSize) : defaultListSize;


@@ -3144,12 +3143,14 @@ status_t SurfaceFlinger::addClientLayer(const sp<Client>& client,
            parent->addChild(lbc);
            parent->addChild(lbc);
        }
        }


        if (gbc != nullptr) {
            mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get());
            mGraphicBufferProducerList.insert(IInterface::asBinder(gbc).get());
        // TODO (b/74616334): Change this back to a fatal assert once the leak is fixed
            LOG_ALWAYS_FATAL_IF(mGraphicBufferProducerList.size() >
        ALOGE_IF(mGraphicBufferProducerList.size() > mMaxGraphicBufferProducerListSize,
                                        mMaxGraphicBufferProducerListSize,
                                "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers",
                                "Suspected IGBP leak: %zu IGBPs (%zu max), %zu Layers",
                 mGraphicBufferProducerList.size(), mMaxGraphicBufferProducerListSize,
                                mGraphicBufferProducerList.size(),
                 mNumLayers);
                                mMaxGraphicBufferProducerListSize, mNumLayers);
        }
        mLayersAdded = true;
        mLayersAdded = true;
        mNumLayers++;
        mNumLayers++;
    }
    }