aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/image/SkImagePriv.h8
-rw-r--r--src/image/SkImage_Raster.cpp2
-rw-r--r--tests/ImageFrom565Bitmap.cpp21
3 files changed, 22 insertions, 9 deletions
diff --git a/src/image/SkImagePriv.h b/src/image/SkImagePriv.h
index b8f177905d..7518bbe808 100644
--- a/src/image/SkImagePriv.h
+++ b/src/image/SkImagePriv.h
@@ -40,14 +40,6 @@ enum ForceCopyMode {
};
extern SkImage* SkNewImageFromRasterBitmap(const SkBitmap&, ForceCopyMode = kNo_ForceCopyMode);
-static inline size_t SkImageMinRowBytes(const SkImageInfo& info) {
- size_t minRB = info.minRowBytes();
- if (kIndex_8_SkColorType != info.colorType()) {
- minRB = SkAlign4(minRB);
- }
- return minRB;
-}
-
// Given an image created from SkNewImageFromBitmap, return its pixelref. This
// may be called to see if the surface and the image share the same pixelref,
// in which case the surface may need to perform a copy-on-write.
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 977dc01c4b..2b81da8915 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -48,7 +48,7 @@ public:
return false;
}
- if (rowBytes < SkImageMinRowBytes(info)) {
+ if (rowBytes < info.minRowBytes()) {
return false;
}
diff --git a/tests/ImageFrom565Bitmap.cpp b/tests/ImageFrom565Bitmap.cpp
new file mode 100644
index 0000000000..d910a47560
--- /dev/null
+++ b/tests/ImageFrom565Bitmap.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkBitmap.h"
+#include "SkImageInfo.h"
+#include "SkImage.h"
+#include "Test.h"
+
+DEF_TEST(ImageFrom565Bitmap, r) {
+ SkBitmap bm;
+ bm.allocPixels(SkImageInfo::Make(
+ 5, 7, kRGB_565_SkColorType, kOpaque_SkAlphaType));
+ SkAutoLockPixels autoLockPixels(bm);
+ bm.eraseColor(SK_ColorBLACK);
+ SkAutoTUnref<SkImage> img(SkImage::NewFromBitmap(bm));
+ REPORTER_ASSERT(r, img.get() != nullptr);
+}