diff options
author | Benjamin Otte <otte@redhat.com> | 2020-02-13 03:23:51 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2020-02-13 06:15:44 +0100 |
commit | 9d8ceb0cb2f331ec79305ec2022192714a89d783 (patch) | |
tree | ead34cc00bc0b3d9662dd2479d7ee3906add0ad3 /testsuite/gsk/reftest-compare.c | |
parent | c313a71c3a0757d07bcf26a03236ea8cad624880 (diff) | |
download | gtk+-9d8ceb0cb2f331ec79305ec2022192714a89d783.tar.gz |
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.
Diffstat (limited to 'testsuite/gsk/reftest-compare.c')
-rw-r--r-- | testsuite/gsk/reftest-compare.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/testsuite/gsk/reftest-compare.c b/testsuite/gsk/reftest-compare.c index 84c560cabc..f63af72419 100644 --- a/testsuite/gsk/reftest-compare.c +++ b/testsuite/gsk/reftest-compare.c @@ -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; } |