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

Commit 74dfcf90 authored by Nancy Zheng's avatar Nancy Zheng
Browse files
Fix memory leak in HWUI

std::unique_ptr::release just releases the ownership of the
managed object. To delete the object, std::unique_ptr::reset
function should be called.

Bug: 26116596
Change-Id: If65f74085b1fc2be3a9fffc433326e0bcdb40ff3
parent eebf168e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ void Caches::initStaticProperties() {

void Caches::terminate() {
    if (!mInitialized) return;
    mRegionMesh.release();
    mRegionMesh.reset(nullptr);

    fboCache.clear();

+2 −2
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ void Lookup3GammaFontRenderer::endPrecaching() {

void Lookup3GammaFontRenderer::clear() {
    for (int i = 0; i < kGammaCount; i++) {
        mRenderers[i].release();
        mRenderers[i].reset(nullptr);
    }
}

@@ -215,7 +215,7 @@ void Lookup3GammaFontRenderer::flush() {

    if (count <= 1 || min < 0) return;

    mRenderers[min].release();
    mRenderers[min].reset(nullptr);

    // Also eliminate the caches for large glyphs, as they consume significant memory
    for (int i = 0; i < kGammaCount; ++i) {
+1 −1
Original line number Diff line number Diff line
@@ -251,7 +251,7 @@ void Layer::defer(const OpenGLRenderer& rootRenderer) {
void Layer::cancelDefer() {
    renderNode = nullptr;
    deferredUpdateScheduled = false;
    deferredList.release();
    deferredList.reset(nullptr);
}

void Layer::flush() {