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

Commit f67808b7 authored by Ryan Mitchell's avatar Ryan Mitchell
Browse files

Optimize aapt2 compile for pngs

Do not copy the png data when compiling pngs.

Bug: 122950060
Test: aapt2 compile -o . BaseAppPhoto1_copy.png

Change-Id: I78fbdaa9a40ada406d7b07cf072d6cd76124168e
parent 9ce77e9b
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -469,16 +469,12 @@ static bool CompilePng(IAaptContext* context, const CompileOptions& options,
      return false;
    }

    // Read the file as a string
    char buffer_2[data->size()];
    memcpy(&buffer_2, data->data(), data->size());
    StringPiece content(buffer_2, data->size());

    BigBuffer crunched_png_buffer(4096);
    io::BigBufferOutputStream crunched_png_buffer_out(&crunched_png_buffer);

    // Ensure that we only keep the chunks we care about if we end up
    // using the original PNG instead of the crunched one.
    const StringPiece content(reinterpret_cast<const char*>(data->data()), data->size());
    PngChunkFilter png_chunk_filter(content);
    std::unique_ptr<Image> image = ReadPng(context, path_data.source, &png_chunk_filter);
    if (!image) {