diff options
Diffstat (limited to 'platform/default/webp_reader.cpp')
-rw-r--r-- | platform/default/webp_reader.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/platform/default/webp_reader.cpp b/platform/default/webp_reader.cpp index 37d23da110..5b0eaf4741 100644 --- a/platform/default/webp_reader.cpp +++ b/platform/default/webp_reader.cpp @@ -15,8 +15,11 @@ PremultipliedImage decodeWebP(const uint8_t* data, size_t size) { throw std::runtime_error("failed to retrieve WebP basic header information"); } - std::unique_ptr<uint8_t[]> webp(WebPDecodeRGBA(data, size, &width, &height)); - if (!webp) { + int stride = width * 4; + size_t webpSize = stride * height; + auto webp = std::make_unique<uint8_t[]>(webpSize); + + if (!WebPDecodeRGBAInto(data, size, webp.get(), webpSize, stride)) { throw std::runtime_error("failed to decode WebP data"); } |