Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2014-01-05 15:04:52 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-01-05 15:26:13 +0400
commita2bf25e8ff7172643fa156cb12d42582595ecd7d (patch)
tree18f7579967a9c100410ed986c429502f625daefb /source/blender/blenkernel/intern/displist.c
parentac3d33af738e6417e2dab4f9686e766c44c102f2 (diff)
Fix crash when having multiple text objects sharing the same curve datablock
Issue was caused by BKE_vfont_to_curve() modifying curve->nurbs list which gave threading issues. Now added BKE_vfont_to_curve_nubase() which operates on a given nurbs list base which is local in do_makeDispListCurveTypes(). By the looks of it it wouldn't give speed regression because previously it also was creating nurbs for every font object sharing the same curve data.
Diffstat (limited to 'source/blender/blenkernel/intern/displist.c')
-rw-r--r--source/blender/blenkernel/intern/displist.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index b9d89be6f9d..4282e860c4e 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1374,10 +1374,12 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba
if (ob->curve_cache->path) free_path(ob->curve_cache->path);
ob->curve_cache->path = NULL;
- if (ob->type == OB_FONT)
- BKE_vfont_to_curve(G.main, scene, ob, FO_EDIT, NULL);
-
- BKE_nurbList_duplicate(&nubase, BKE_curve_nurbs_get(cu));
+ if (ob->type == OB_FONT) {
+ BKE_vfont_to_curve_nubase(G.main, scene, ob, &nubase, FO_EDIT, NULL);
+ }
+ else {
+ BKE_nurbList_duplicate(&nubase, BKE_curve_nurbs_get(cu));
+ }
if (!forOrco)
curve_calc_modifiers_pre(scene, ob, &nubase, forRender, renderResolution);