diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2008-12-23 15:00:47 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2008-12-23 15:03:08 +0000 |
commit | 93672d842f2b2c840bb9e73901faa4ce5df9c792 (patch) | |
tree | 81e92e3312de40731f606df802a554494de04ba9 /test/user-font-rescale.c | |
parent | 5ad65dc4be5964265946de59a951f2304d64159e (diff) | |
download | cairo-93672d842f2b2c840bb9e73901faa4ce5df9c792.tar.gz |
[test] Fix reference handling in user-font-rescale
user-font-rescale stored the current font on the context in order to
create a rescaling proxy font. As we failed to take a reference to the
font, it caught us by surprise when the font disappeared as we modified
the context before creating our proxy. Ho hum.
Diffstat (limited to 'test/user-font-rescale.c')
-rw-r--r-- | test/user-font-rescale.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/test/user-font-rescale.c b/test/user-font-rescale.c index 0c3241939..04d3f53c1 100644 --- a/test/user-font-rescale.c +++ b/test/user-font-rescale.c @@ -323,7 +323,7 @@ draw (cairo_t *cr, int width, int height) cairo_show_text (cr, text); /* same text in 'mono' with widths that match the 'sans' version */ - old = cairo_get_font_face (cr); + old = cairo_font_face_reference (cairo_get_font_face (cr)); cairo_select_font_face (cr, "Bitstream Vera Sans Mono", CAIRO_FONT_SLANT_NORMAL, @@ -331,10 +331,12 @@ draw (cairo_t *cr, int width, int height) substitute = cairo_get_font_face (cr); status = get_user_font_face (substitute, text, old, &rescaled); + cairo_font_face_destroy (old); if (status) { return cairo_test_status_from_status (cairo_test_get_context (cr), status); } + cairo_set_font_face (cr, rescaled); cairo_font_face_destroy (rescaled); |