[gl] Fix the glyph cache full flush to really try again.

Previously, the initial error handling would dump through to software
fallback instead of retrying in the following code.
This commit is contained in:
Eric Anholt 2010-01-11 16:04:21 -08:00
parent 4aae4bfa8f
commit 515ccb63a6

View file

@ -478,17 +478,15 @@ _render_glyphs (cairo_gl_surface_t *dst,
if (scaled_glyph->surface_private == NULL) {
status = _cairo_gl_glyph_cache_add_glyph (cache, scaled_glyph);
if (unlikely (_cairo_status_is_error (status)))
goto FINISH;
if (status == CAIRO_INT_STATUS_UNSUPPORTED) {
/* Cache is full, so flush existing prims and try again. */
_cairo_gl_flush_glyphs (ctx, &setup);
_cairo_gl_glyph_cache_unlock (cache);
status = _cairo_gl_glyph_cache_add_glyph (cache, scaled_glyph);
}
status = _cairo_gl_glyph_cache_add_glyph (cache, scaled_glyph);
if (unlikely (status))
if (unlikely (_cairo_status_is_error (status)))
goto FINISH;
}