diff options
author | Mike Reed <reed@google.com> | 2017-10-06 21:23:58 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-06 21:24:10 +0000 |
commit | 384f0a7d6626026f21313e85e51890d747171ee8 (patch) | |
tree | 7216797795c0c83d8de970250ffb14e9a9ca8cd4 | |
parent | e1da1d9a7dfa6c9ebdcbd2845acebd045edd2a6f (diff) |
Revert "change computeByteSize to return max_size_t on overflow"
This reverts commit 24295462722fd5a298d108a80b0aacbb0964da53.
Reason for revert: broke running dm on google3
Original change's description:
> change computeByteSize to return max_size_t on overflow
>
> Bug: skia:7132
> Change-Id: I41045640ee62b2c988a84370ead5034bbccc6daf
> Reviewed-on: https://skia-review.googlesource.com/56620
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
TBR=bungeman@google.com,herb@google.com,reed@google.com
Change-Id: I5f58ec37241d2fae3ebdb7a3d6b41f9fd6d3c2ee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:7132
Reviewed-on: https://skia-review.googlesource.com/56880
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
-rw-r--r-- | include/core/SkImageInfo.h | 8 | ||||
-rw-r--r-- | include/core/SkTypes.h | 1 | ||||
-rw-r--r-- | public.bzl | 1 | ||||
-rw-r--r-- | src/core/SkAutoPixmapStorage.cpp | 2 | ||||
-rw-r--r-- | src/core/SkBitmapCache.cpp | 2 | ||||
-rw-r--r-- | src/core/SkImageInfo.cpp | 4 | ||||
-rw-r--r-- | src/core/SkMallocPixelRef.cpp | 5 | ||||
-rw-r--r-- | src/image/SkImage.cpp | 2 | ||||
-rw-r--r-- | src/image/SkImage_Raster.cpp | 2 |
9 files changed, 8 insertions, 19 deletions
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h index cab84b9fe0..50d068a09c 100644 --- a/include/core/SkImageInfo.h +++ b/include/core/SkImageInfo.h @@ -317,19 +317,11 @@ public: } #endif -#ifdef SK_SUPPORT_LEGACY_COMPUTEBYTESIZE_RET_0 /** * Returns the size (in bytes) of the image buffer that this info needs, given the specified * rowBytes. The rowBytes must be >= this->minRowBytes(). * If the calculation overflows, or if the height is 0, this returns 0. */ -#else - /** - * Returns the size (in bytes) of the image buffer that this info needs, given the specified - * rowBytes. The rowBytes must be >= this->minRowBytes(). - * If the calculation overflows this returns SK_MaxSizeT - */ -#endif size_t computeByteSize(size_t rowBytes) const; /** diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h index 59bdaaa90c..63a2b40591 100644 --- a/include/core/SkTypes.h +++ b/include/core/SkTypes.h @@ -233,7 +233,6 @@ template <typename D, typename S> D SkTo(S s) { #define SK_MaxU32 0xFFFFFFFF #define SK_MinU32 0 #define SK_NaN32 ((int) (1U << 31)) -#define SK_MaxSizeT SIZE_MAX static inline int32_t SkLeftShift(int32_t value, int32_t shift) { return (int32_t) ((uint32_t) value << shift); diff --git a/public.bzl b/public.bzl index dfb64707d6..e8325500a0 100644 --- a/public.bzl +++ b/public.bzl @@ -656,7 +656,6 @@ DEFINES_ALL = [ # Required for building dm. "GR_TEST_UTILS", # Staging flags for API changes - "SK_SUPPORT_LEGACY_COMPUTEBYTESIZE_RET_0", # Should remove after we update golden images "SK_WEBP_ENCODER_USE_DEFAULT_METHOD", # Experiment to diagnose image diffs in Google3 diff --git a/src/core/SkAutoPixmapStorage.cpp b/src/core/SkAutoPixmapStorage.cpp index fb8ad00246..df0c0fa878 100644 --- a/src/core/SkAutoPixmapStorage.cpp +++ b/src/core/SkAutoPixmapStorage.cpp @@ -37,7 +37,7 @@ bool SkAutoPixmapStorage::tryAlloc(const SkImageInfo& info) { size_t rb; size_t size = AllocSize(info, &rb); - if (SK_MaxSizeT == size) { + if (0 == size) { return false; } void* pixels = sk_malloc_flags(size, 0); diff --git a/src/core/SkBitmapCache.cpp b/src/core/SkBitmapCache.cpp index 2f163183db..8d3991a9d5 100644 --- a/src/core/SkBitmapCache.cpp +++ b/src/core/SkBitmapCache.cpp @@ -290,7 +290,7 @@ SkBitmapCache::RecPtr SkBitmapCache::Alloc(const SkBitmapCacheDesc& desc, const const size_t rb = info.minRowBytes(); size_t size = info.computeByteSize(rb); - if (SK_MaxSizeT == size) { + if (0 == size) { return nullptr; } diff --git a/src/core/SkImageInfo.cpp b/src/core/SkImageInfo.cpp index 9e08768d7b..c610b82bdc 100644 --- a/src/core/SkImageInfo.cpp +++ b/src/core/SkImageInfo.cpp @@ -78,11 +78,7 @@ size_t SkImageInfo::computeByteSize(size_t rowBytes) const { SkSafeMath safe; size_t bytes = safe.add(safe.mul(fHeight - 1, rowBytes), safe.mul(fWidth, this->bytesPerPixel())); -#ifdef SK_SUPPORT_LEGACY_COMPUTEBYTESIZE_RET_0 return safe ? bytes : 0; -#else - return safe ? bytes : SK_MaxSizeT; -#endif } static bool alpha_type_is_valid(SkAlphaType alphaType) { diff --git a/src/core/SkMallocPixelRef.cpp b/src/core/SkMallocPixelRef.cpp index 531d9f8fdf..10861028b1 100644 --- a/src/core/SkMallocPixelRef.cpp +++ b/src/core/SkMallocPixelRef.cpp @@ -80,7 +80,7 @@ sk_sp<SkPixelRef> SkMallocPixelRef::MakeUsing(void*(*allocProc)(size_t), size_t size = 0; if (!info.isEmpty() && rowBytes) { size = info.computeByteSize(rowBytes); - if (size == SK_MaxSizeT) { + if (!size) { return nullptr; // overflow } } @@ -131,6 +131,9 @@ sk_sp<SkPixelRef> SkMallocPixelRef::MakeWithData(const SkImageInfo& info, if (!is_valid(info)) { return nullptr; } + // TODO: what should we return if computeByteSize returns 0? + // - the info was empty? + // - we overflowed computing the size? if ((rowBytes < info.minRowBytes()) || (data->size() < info.computeByteSize(rowBytes))) { return nullptr; } diff --git a/src/image/SkImage.cpp b/src/image/SkImage.cpp index c67b6e4cdb..705efaec30 100644 --- a/src/image/SkImage.cpp +++ b/src/image/SkImage.cpp @@ -423,7 +423,7 @@ sk_sp<SkImage> SkImageMakeRasterCopyAndAssignColorSpace(const SkImage* src, size_t rowBytes = info.minRowBytes(); size_t size = info.computeByteSize(rowBytes); - if (size == SK_MaxSizeT) { + if (size == 0) { return nullptr; } auto data = SkData::MakeUninitialized(size); diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp index e43d2c48b7..c576d9d3a1 100644 --- a/src/image/SkImage_Raster.cpp +++ b/src/image/SkImage_Raster.cpp @@ -62,7 +62,7 @@ public: } size_t size = info.computeByteSize(rowBytes); - if (SK_MaxSizeT == size) { + if (0 == size) { return false; } |