return pixels_to_units(pixels, to, dpi);
}
-static GpGraphics *create_graphics(REAL res_x, REAL res_y, GpUnit unit, REAL scale)
+static GpGraphics *create_graphics(REAL res_x, REAL res_y, GpUnit unit, REAL scale, GpImage **image)
{
GpStatus status;
union
status = GdipGetImageGraphicsContext(u.image, &graphics);
expect(Ok, status);
- /* image is intentionally leaked to make sure that there is no
- side effects after its destruction.
- status = GdipDisposeImage(u.image);
- expect(Ok, status);
- */
+
+ *image = u.image;
status = GdipGetDpiX(graphics, &res);
expect(Ok, status);
for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
{
- graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].page_scale);
+ GpImage *image;
+
+ graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].page_scale, &image);
lf.lfHeight = 0xdeadbeef;
status = GdipGetLogFontW(font, graphics, &lf);
status = GdipDeleteGraphics(graphics);
expect(Ok, status);
+
+ status = GdipDisposeImage(image);
+ expect(Ok, status);
}
GdipDeleteFont(font);
for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
{
REAL unit_scale;
+ GpImage *image;
- graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].page_scale);
+ graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].page_scale, &image);
lf.lfHeight = 0xdeadbeef;
status = GdipGetLogFontW(font, graphics, &lf);
status = GdipDeleteGraphics(graphics);
expect(Ok, status);
+
+ status = GdipDisposeImage(image);
+ expect(Ok, status);
}
GdipDeleteFont(font);
};
GpStatus status;
GpGraphics *graphics;
+ GpImage *image;
GpPointF ptf[2];
UINT i;
for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
{
- graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].scale);
+ graphics = create_graphics(td[i].res_x, td[i].res_y, td[i].unit, td[i].scale, &image);
ptf[0].X = td[i].in[0].X;
ptf[0].Y = td[i].in[0].Y;
ptf[1].X = td[i].in[1].X;
expectf(td[i].in[1].Y, ptf[1].Y);
status = GdipDeleteGraphics(graphics);
expect(Ok, status);
+ status = GdipDisposeImage(image);
+ expect(Ok, status);
}
}