diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-01-05 13:00:03 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-01-05 14:15:24 +0400 |
commit | e20f357cc2955071d4505f7f4b3bce965484884e (patch) | |
tree | ea44cc76c4258d74932286e2b399bb78d08de117 /source/blender | |
parent | d9697bc1455dc556fd233aae9d45b523af62669b (diff) |
Text3d: error in own recent fix for thread safety
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/intern/font.c | 33 |
1 files changed, 13 insertions, 20 deletions
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 */ |