Commit 577740f0 authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

gdiplus: Fix GdipImageRotateFlip for images from streams.

parent c5820b79
......@@ -1971,8 +1971,6 @@ static void move_bitmap(GpBitmap *dst, GpBitmap *src, BOOL clobber_palette)
{
assert(src->image.type == ImageTypeBitmap);
assert(dst->image.type == ImageTypeBitmap);
assert(src->image.stream == NULL);
assert(dst->image.stream == NULL);
GdipFree(dst->bitmapbits);
DeleteDC(dst->hdc);
......@@ -2001,6 +1999,12 @@ static void move_bitmap(GpBitmap *dst, GpBitmap *src, BOOL clobber_palette)
if (dst->metadata_reader)
IWICMetadataReader_Release(dst->metadata_reader);
dst->metadata_reader = src->metadata_reader;
if (dst->image.stream)
IStream_Release(dst->image.stream);
dst->image.stream = src->image.stream;
dst->image.frame_count = src->image.frame_count;
dst->image.current_frame = src->image.current_frame;
dst->image.format = src->image.format;
src->image.type = ~0;
GdipFree(src);
......
......@@ -2345,6 +2345,17 @@ static void test_multiframegif(void)
expect(Ok, stat);
expect(0xffffffff, color);
/* rotate/flip discards the information about other frames */
stat = GdipImageRotateFlip((GpImage*)bmp, Rotate90FlipNone);
expect(Ok, stat);
count = 12345;
stat = GdipImageGetFrameCount((GpImage*)bmp, &dimension, &count);
expect(Ok, stat);
expect(1, count);
expect_rawformat(&ImageFormatMemoryBMP, (GpImage*)bmp, __LINE__, FALSE);
GdipDisposeImage((GpImage*)bmp);
IStream_Release(stream);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment