b3b24538e0
An RLE bmp reports how many bytes it should contain. This number may be incorrect, or it may be a very large number. Previously, we buffered all bytes in a single allocation. Instead, use a fixed size buffer and only read what fits into the buffer. We already have code to refill the buffer if there is more data, so rely on that to keep reading. Choose an arbitrary size for the buffer. It is larger than the maximum possible number of bytes we need to read at once. Add a test with a test image that reports a very large number for the number of bytes it should contain. With the old method, we would allocate 4 gigs of memory to decode this image, which is unnecessary and may result in OOM. BUG=b/33251605 Change-Id: I6d66eace626002725f62237617140cab99ce42f3 Reviewed-on: https://skia-review.googlesource.com/7028 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Matt Sarett <msarett@google.com> |
||
---|---|---|
.. | ||
android_fonts | ||
empty_images | ||
fonts | ||
icc_profiles | ||
invalid_images | ||
1x1.png | ||
1x3.png | ||
1x16.png | ||
2x2.png | ||
3x1.png | ||
3x3.png | ||
16x1.png | ||
arrow.png | ||
baby_tux.png | ||
baby_tux.webp | ||
box.gif | ||
brickwork_normal-map.jpg | ||
brickwork-texture.jpg | ||
CMYK.jpg | ||
color_wheel_with_profile.png | ||
color_wheel.gif | ||
color_wheel.ico | ||
color_wheel.jpg | ||
color_wheel.png | ||
color_wheel.webp | ||
colorTables.gif | ||
cropped_mandrill.jpg | ||
dng_with_preview.dng | ||
exif-orientation-2-ur.jpg | ||
gamut.png | ||
google_chrome.ico | ||
grayscale.jpg | ||
half-transparent-white-pixel.png | ||
half-transparent-white-pixel.webp | ||
icc-v2-gbr.jpg | ||
iconstrip.png | ||
index8.png | ||
mandrill_16.png | ||
mandrill_32.png | ||
mandrill_64.png | ||
mandrill_128.png | ||
mandrill_256.png | ||
mandrill_512_q075.jpg | ||
mandrill_512.png | ||
mandrill_h1v1.jpg | ||
mandrill_h2v1.jpg | ||
mandrill.wbmp | ||
nov-talk-sequence.txt | ||
pdf_command_stream.txt | ||
plane_interlaced.png | ||
plane.png | ||
randPixels.bmp | ||
randPixels.gif | ||
randPixels.jpg | ||
randPixels.png | ||
randPixels.webp | ||
randPixelsAnim.gif | ||
randPixelsOffset.gif | ||
README | ||
rle.bmp | ||
sample_1mp_rotated.dng | ||
sample_1mp.dng | ||
slides_content2.lua | ||
slides_content.lua | ||
slides_transitions.lua | ||
slides_utils.lua | ||
slides.lua | ||
test640x479.gif | ||
test.lua | ||
webp-color-profile-crash.webp | ||
webp-color-profile-lossless.webp | ||
webp-color-profile-lossy-alpha.webp | ||
webp-color-profile-lossy.webp | ||
yellow_rose.png | ||
yellow_rose.webp |
The resources directory includes some third party content used by Skia. Licenses for that code are included in this file. Openclipart Openclipart uses the Creative Commons Zero 1.0 Public Domain License every time an artist uploads a piece of clipart to Openclipart to make it clear the artist is releasing the creative work for anyone to use for any reason, even commercially. This act of "sharing" is the foundation Openclipart is based upon. More details on the license can be found at https://creativecommons.org/publicdomain/zero/1.0/.