[core] leave Image objects in a valid state after premultiply/unpremultiply

This commit is contained in:
Konstantin Käfer
2017-05-18 12:01:19 +02:00
parent 281d3d4f8c
commit d664a3e05e
2 changed files with 6 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ PremultipliedImage premultiply(UnassociatedImage&& src) {
PremultipliedImage dst;
dst.size = src.size;
src.size = { 0, 0 };
dst.data = std::move(src.data);
uint8_t* data = dst.data.get();
@@ -29,6 +30,7 @@ UnassociatedImage unpremultiply(PremultipliedImage&& src) {
UnassociatedImage dst;
dst.size = src.size;
src.size = { 0, 0 };
dst.data = std::move(src.data);
uint8_t* data = dst.data.get();

View File

@@ -142,4 +142,8 @@ TEST(Image, Premultiply) {
EXPECT_EQ(127, image.data[1]);
EXPECT_EQ(127, image.data[2]);
EXPECT_EQ(128, image.data[3]);
EXPECT_EQ(1u, image.size.width);
EXPECT_EQ(1u, image.size.height);
EXPECT_EQ(0u, rgba.size.width);
EXPECT_EQ(0u, rgba.size.height);
}