summaryrefslogtreecommitdiff
path: root/source/fitz/draw-glyph.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/fitz/draw-glyph.c')
-rw-r--r--source/fitz/draw-glyph.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/fitz/draw-glyph.c b/source/fitz/draw-glyph.c
index 223e48d6..73f2eb71 100644
--- a/source/fitz/draw-glyph.c
+++ b/source/fitz/draw-glyph.c
@@ -254,6 +254,7 @@ fz_render_glyph(fz_context *ctx, fz_font *font, int gid, fz_matrix *ctm, fz_colo
fz_var(locked);
fz_var(caching);
+ fz_var(val);
memset(&key, 0, sizeof key);
size = fz_subpixel_adjust(ctm, &subpix_ctm, &key.e, &key.f);
@@ -296,6 +297,7 @@ fz_render_glyph(fz_context *ctx, fz_font *font, int gid, fz_matrix *ctm, fz_colo
locked = 1;
caching = 0;
+ val = NULL;
fz_try(ctx)
{
@@ -323,7 +325,6 @@ fz_render_glyph(fz_context *ctx, fz_font *font, int gid, fz_matrix *ctm, fz_colo
else
{
fz_warn(ctx, "assert: uninitialized font structure");
- val = NULL;
}
if (val && do_cache)
{
@@ -344,8 +345,7 @@ fz_render_glyph(fz_context *ctx, fz_font *font, int gid, fz_matrix *ctm, fz_colo
fz_drop_glyph(ctx, val);
move_to_front(cache, entry);
val = fz_keep_glyph(ctx, entry->val);
- fz_unlock(ctx, FZ_LOCK_GLYPHCACHE);
- return val;
+ goto unlock_and_return_val;
}
entry = entry->bucket_next;
}
@@ -380,6 +380,9 @@ fz_render_glyph(fz_context *ctx, fz_font *font, int gid, fz_matrix *ctm, fz_colo
}
}
+unlock_and_return_val:
+ {
+ }
}
fz_always(ctx)
{