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:
authorCampbell Barton <ideasman42@gmail.com>2013-11-20 21:32:28 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-20 21:32:28 +0400
commitd232486b4093fbc306dadbc21bd3fde81284364d (patch)
treef43a3dda70324c49df88f9c08518ae5e859879a2
parent0af52adac044d4851b95dd238ba209593f106996 (diff)
Fix T37543: Multiline 3D Text saved in edit mode breaks on load
-rw-r--r--source/blender/blenkernel/intern/curve.c2
-rw-r--r--source/blender/blenloader/intern/readfile.c2
-rw-r--r--source/blender/editors/curve/editfont.c7
-rw-r--r--source/blender/editors/object/object_edit.c2
-rw-r--r--source/blender/makesdna/DNA_curve_types.h2
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];