forked from AuroraMiddleware/gtk
testsuite: Don't destroy surfaces that are still used
Coercing the surfaces must not unref the old surface, because the old surface is going to be saved to a file.
This commit is contained in:
parent
c313a71c3a
commit
9d8ceb0cb2
@ -61,7 +61,6 @@ coerce_surface_for_comparison (cairo_surface_t *surface,
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
g_assert (cairo_surface_status (coerced) == CAIRO_STATUS_SUCCESS);
|
||||
|
||||
@ -152,21 +151,24 @@ reftest_compare_surfaces (cairo_surface_t *surface1,
|
||||
cairo_surface_t *surface2)
|
||||
{
|
||||
int w1, h1, w2, h2, w, h;
|
||||
cairo_surface_t *diff;
|
||||
cairo_surface_t *coerced1, *coerced2, *diff;
|
||||
|
||||
get_surface_size (surface1, &w1, &h1);
|
||||
get_surface_size (surface2, &w2, &h2);
|
||||
w = MAX (w1, w2);
|
||||
h = MAX (h1, h2);
|
||||
surface1 = coerce_surface_for_comparison (surface1, w, h);
|
||||
surface2 = coerce_surface_for_comparison (surface2, w, h);
|
||||
coerced1 = coerce_surface_for_comparison (surface1, w, h);
|
||||
coerced2 = coerce_surface_for_comparison (surface2, w, h);
|
||||
|
||||
diff = buffer_diff_core (cairo_image_surface_get_data (surface1),
|
||||
cairo_image_surface_get_stride (surface1),
|
||||
cairo_image_surface_get_data (surface2),
|
||||
cairo_image_surface_get_stride (surface2),
|
||||
diff = buffer_diff_core (cairo_image_surface_get_data (coerced1),
|
||||
cairo_image_surface_get_stride (coerced1),
|
||||
cairo_image_surface_get_data (coerced2),
|
||||
cairo_image_surface_get_stride (coerced2),
|
||||
w, h);
|
||||
|
||||
cairo_surface_destroy (coerced1);
|
||||
cairo_surface_destroy (coerced2);
|
||||
|
||||
return diff;
|
||||
}
|
||||
|
||||
|
@ -61,7 +61,6 @@ coerce_surface_for_comparison (cairo_surface_t *surface,
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
cairo_surface_destroy (surface);
|
||||
|
||||
g_assert (cairo_surface_status (coerced) == CAIRO_STATUS_SUCCESS);
|
||||
|
||||
@ -152,21 +151,24 @@ reftest_compare_surfaces (cairo_surface_t *surface1,
|
||||
cairo_surface_t *surface2)
|
||||
{
|
||||
int w1, h1, w2, h2, w, h;
|
||||
cairo_surface_t *diff;
|
||||
cairo_surface_t *coerced1, *coerced2, *diff;
|
||||
|
||||
get_surface_size (surface1, &w1, &h1);
|
||||
get_surface_size (surface2, &w2, &h2);
|
||||
w = MAX (w1, w2);
|
||||
h = MAX (h1, h2);
|
||||
surface1 = coerce_surface_for_comparison (surface1, w, h);
|
||||
surface2 = coerce_surface_for_comparison (surface2, w, h);
|
||||
coerced1 = coerce_surface_for_comparison (surface1, w, h);
|
||||
coerced2 = coerce_surface_for_comparison (surface2, w, h);
|
||||
|
||||
diff = buffer_diff_core (cairo_image_surface_get_data (surface1),
|
||||
cairo_image_surface_get_stride (surface1),
|
||||
cairo_image_surface_get_data (surface2),
|
||||
cairo_image_surface_get_stride (surface2),
|
||||
diff = buffer_diff_core (cairo_image_surface_get_data (coerced1),
|
||||
cairo_image_surface_get_stride (coerced1),
|
||||
cairo_image_surface_get_data (coerced2),
|
||||
cairo_image_surface_get_stride (coerced2),
|
||||
w, h);
|
||||
|
||||
cairo_surface_destroy (coerced1);
|
||||
cairo_surface_destroy (coerced2);
|
||||
|
||||
return diff;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user