diff options
author | Mike Reed <reed@google.com> | 2017-10-02 13:44:11 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-02 13:44:18 +0000 |
commit | 5a2e50edc51006ce91366e177a9d21a16775d7fd (patch) | |
tree | 6301e052ffd179fc8c61681c0f8a0d7b175d4401 /src/codec | |
parent | cd284c532376d16fcc4ed75baf3da65c3e4a2e95 (diff) |
Revert "Revert "Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap"""
This reverts commit cd284c532376d16fcc4ed75baf3da65c3e4a2e95.
Reason for revert:
assert fired in SkMallocPixelRef.cpp:61: fatal error: "assert(info.computeByteSize(rowBytes) == info.getSafeSize(rowBytes))"
google3 thinks it was from surface_rowbytes
Original change's description:
> Revert "Revert "guard old apis for querying byte-size of a bitmap/imageinfo/pixmap""
>
> This reverts commit 809cbedd4b252be221b2ac3b4269d312fd8f53a0.
>
> Bug: skia:
> Change-Id: I680d8daeeeeb15526b44c1305d8fb0c6bfa38e1d
> Reviewed-on: https://skia-review.googlesource.com/52665
> Commit-Queue: Mike Reed <reed@google.com>
> Reviewed-by: Florin Malita <fmalita@chromium.org>
TBR=fmalita@chromium.org,reed@google.com
Change-Id: I41e3f7a3f791cc8183291847e783ed8a53bc91d2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/53802
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/codec')
-rw-r--r-- | src/codec/SkIcoCodec.cpp | 2 | ||||
-rw-r--r-- | src/codec/SkSampler.cpp | 4 | ||||
-rw-r--r-- | src/codec/SkWebpCodec.cpp | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/src/codec/SkIcoCodec.cpp b/src/codec/SkIcoCodec.cpp index da6d0c360c..74affe6709 100644 --- a/src/codec/SkIcoCodec.cpp +++ b/src/codec/SkIcoCodec.cpp @@ -173,7 +173,7 @@ std::unique_ptr<SkCodec> SkIcoCodec::MakeFromStream(std::unique_ptr<SkStream> st int maxIndex = 0; for (int i = 0; i < codecs->count(); i++) { SkImageInfo info = codecs->operator[](i)->getInfo(); - size_t size = info.computeMinByteSize(); + size_t size = info.getSafeSize(info.minRowBytes()); if (size > maxSize) { maxSize = size; diff --git a/src/codec/SkSampler.cpp b/src/codec/SkSampler.cpp index d18410be3b..c7d9a3ac23 100644 --- a/src/codec/SkSampler.cpp +++ b/src/codec/SkSampler.cpp @@ -14,8 +14,8 @@ void SkSampler::Fill(const SkImageInfo& info, void* dst, size_t rowBytes, uint64_t colorOrIndex, SkCodec::ZeroInitialized zeroInit) { SkASSERT(dst != nullptr); - // Calculate bytes to fill. - const size_t bytesToFill = info.computeByteSize(rowBytes); + // Calculate bytes to fill. We use getSafeSize since the last row may not be padded. + const size_t bytesToFill = info.getSafeSize(rowBytes); const int width = info.width(); const int numRows = info.height(); diff --git a/src/codec/SkWebpCodec.cpp b/src/codec/SkWebpCodec.cpp index baf3468e30..10b82836da 100644 --- a/src/codec/SkWebpCodec.cpp +++ b/src/codec/SkWebpCodec.cpp @@ -542,7 +542,7 @@ SkCodec::Result SkWebpCodec::onGetPixels(const SkImageInfo& dstInfo, void* dst, config.output.u.RGBA.rgba = reinterpret_cast<uint8_t*>(webpDst.getAddr(dstX, dstY)); config.output.u.RGBA.stride = static_cast<int>(webpDst.rowBytes()); - config.output.u.RGBA.size = webpDst.computeByteSize(); + config.output.u.RGBA.size = webpDst.getSafeSize(); SkAutoTCallVProc<WebPIDecoder, WebPIDelete> idec(WebPIDecode(nullptr, 0, &config)); if (!idec) { |