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

Commit d0f7f418 authored by Narayan Kamath's avatar Narayan Kamath Committed by Gerrit Code Review
Browse files

Merge "Freeing frame map"

parents ade631ee 0c1eeb3c
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -156,12 +156,12 @@ status_t BootAnimation::initTexture(Texture* texture, AssetManager& assets,
    return NO_ERROR;
}

status_t BootAnimation::initTexture(void* buffer, size_t len)
status_t BootAnimation::initTexture(const Animation::Frame& frame)
{
    //StopWatch watch("blah");

    SkBitmap bitmap;
    SkMemoryStream  stream(buffer, len);
    SkMemoryStream  stream(frame.map->getDataPtr(), frame.map->getDataLength());
    SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
    if (codec) {
        codec->setDitherImage(false);
@@ -171,6 +171,11 @@ status_t BootAnimation::initTexture(void* buffer, size_t len)
        delete codec;
    }

    // FileMap memory is never released until application exit.
    // Release it now as the texture is already loaded and the memory used for
    // the packed resource can be released.
    frame.map->release();

    // ensure we can call getPixels(). No need to call unlock, since the
    // bitmap will go out of scope when we return from this method.
    bitmap.lockPixels();
@@ -406,6 +411,7 @@ bool BootAnimation::movie()

    String8 desString((char const*)descMap->getDataPtr(),
            descMap->getDataLength());
    descMap->release();
    char const* s = desString.string();

    Animation animation;
@@ -530,9 +536,7 @@ bool BootAnimation::movie()
                        glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
                        glTexParameterx(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
                    }
                    initTexture(
                            frame.map->getDataPtr(),
                            frame.map->getDataLength());
                    initTexture(frame);
                }

                if (!clearReg.isEmpty()) {
+1 −1
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ private:
    };

    status_t initTexture(Texture* texture, AssetManager& asset, const char* name);
    status_t initTexture(void* buffer, size_t len);
    status_t initTexture(const Animation::Frame& frame);
    bool android();
    bool movie();