From e20f357cc2955071d4505f7f4b3bce965484884e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 5 Jan 2014 20:00:03 +1100 Subject: Text3d: error in own recent fix for thread safety --- source/blender/blenkernel/intern/font.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) (limited to 'source/blender/blenkernel/intern') diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 222251f6e5e..0fddce5a9b3 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -598,9 +598,21 @@ makebreak: } vfont = which_vfont(cu, info); - + if (vfont == NULL) break; + if (vfont != oldvfont) { + vfd = vfont_get_data(bmain, vfont); + oldvfont = vfont; + } + + /* VFont Data for VFont couldn't be found */ + if (!vfd) { + MEM_freeN(chartransdata); + chartransdata = NULL; + goto finally; + } + if (!ELEM(ascii, '\n', '\0')) { BLI_rw_mutex_lock(&vfont_rwlock, THREAD_LOCK_READ); che = find_vfont_char(vfd, ascii); @@ -629,25 +641,6 @@ makebreak: che = NULL; } - /* No VFont found */ - if (vfont == NULL) { - MEM_freeN(chartransdata); - chartransdata = NULL; - goto finally; - } - - if (vfont != oldvfont) { - vfd = vfont_get_data(bmain, vfont); - oldvfont = vfont; - } - - /* VFont Data for VFont couldn't be found */ - if (!vfd) { - MEM_freeN(chartransdata); - chartransdata = NULL; - goto finally; - } - twidth = char_width(cu, che, info); /* Calculate positions */ -- cgit v1.2.3