diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-11-20 21:32:28 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-11-20 21:32:28 +0400 |
commit | d232486b4093fbc306dadbc21bd3fde81284364d (patch) | |
tree | f43a3dda70324c49df88f9c08518ae5e859879a2 /source | |
parent | 0af52adac044d4851b95dd238ba209593f106996 (diff) |
Fix T37543: Multiline 3D Text saved in edit mode breaks on load
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 2 | ||||
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 | ||||
-rw-r--r-- | source/blender/editors/curve/editfont.c | 7 | ||||
-rw-r--r-- | source/blender/editors/object/object_edit.c | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_curve_types.h | 2 |
5 files changed, 6 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index b31be3f0067..bcf0eafaa65 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -116,6 +116,8 @@ void BKE_curve_editfont_free(Curve *cu) MEM_freeN(ef); cu->editfont = NULL; } + + MEM_SAFE_FREE(cu->selboxes); } void BKE_curve_editNurb_keyIndex_free(EditNurb *editnurb) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 01a71cfd63d..de055b22d74 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3360,6 +3360,8 @@ static void lib_link_curve(FileData *fd, Main *main) cu->ipo = newlibadr_us(fd, cu->id.lib, cu->ipo); // XXX deprecated - old animation system cu->key = newlibadr_us(fd, cu->id.lib, cu->key); + + cu->selboxes = NULL; /* runtime, clear */ cu->id.flag -= LIB_NEED_LINK; } diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 6ba54145c25..8f536575a28 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -1475,13 +1475,6 @@ void load_editText(Object *obedit) memcpy(cu->strinfo, ef->textbufinfo, (cu->len) * sizeof(CharInfo)); cu->len = strlen(cu->str); - - /* this memory system is weak... */ - - if (cu->selboxes) { - MEM_freeN(cu->selboxes); - cu->selboxes = NULL; - } } void free_editText(Object *obedit) diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c index 02cbc1060df..2e011493fce 100644 --- a/source/blender/editors/object/object_edit.c +++ b/source/blender/editors/object/object_edit.c @@ -351,7 +351,7 @@ static bool ED_object_editmode_load_ex(Object *obedit, const bool freedata) load_editNurb(obedit); if (freedata) free_editNurb(obedit); } - else if (obedit->type == OB_FONT && freedata) { + else if (obedit->type == OB_FONT) { load_editText(obedit); if (freedata) free_editText(obedit); } diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h index f1a2cd68f28..0141c4b61db 100644 --- a/source/blender/makesdna/DNA_curve_types.h +++ b/source/blender/makesdna/DNA_curve_types.h @@ -223,7 +223,7 @@ typedef struct Curve { float linewidth; char *str; - struct SelBox *selboxes; + struct SelBox *selboxes; /* runtime variable for drawing selections (editmode data) */ struct EditFont *editfont; char family[24]; |