Free IDs: vfont & text.
authorBastien Montagne <montagne29@wanadoo.fr>
Thu, 1 Oct 2015 14:34:09 +0000 (16:34 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Thu, 1 Oct 2015 14:34:09 +0000 (16:34 +0200)
source/blender/blenkernel/BKE_font.h
source/blender/blenkernel/BKE_text.h
source/blender/blenkernel/intern/font.c
source/blender/blenkernel/intern/library.c
source/blender/blenkernel/intern/text.c

index 137670215cca2009f9485ab255a720e6384c3e6f..18bc22b87f09f8ef663fef200e1813ae7e393560 100644 (file)
@@ -78,7 +78,7 @@ bool BKE_vfont_is_builtin(struct VFont *vfont);
 void BKE_vfont_builtin_register(void *mem, int size);
 
 void BKE_vfont_free_data(struct VFont *vfont);
-void BKE_vfont_free(struct VFont *sc); 
+void BKE_vfont_free(struct VFont *sc, const bool do_id_user);
 struct VFont *BKE_vfont_builtin_get(void);
 struct VFont *BKE_vfont_load(struct Main *bmain, const char *name);
 
index a5a59d14c92e26bd22c488d9efb942a12a63893d..6350563adc58a704483b30f0617086d048332edf 100644 (file)
@@ -41,7 +41,7 @@ struct Main;
 struct Text;
 struct TextLine;
 
-void                   BKE_text_free           (struct Text *text);
+void                   BKE_text_free           (struct Text *text, const bool do_id_user);
 void                   txt_set_undostate       (int u);
 int                    txt_get_undostate       (void);
 struct Text    *BKE_text_add   (struct Main *bmain, const char *name);
index 23261b63486620cd7227994ebbb6dbc419fa50cb..7f9734dcd4ee010aa657f61c228d7c976a709c9a 100644 (file)
@@ -95,10 +95,8 @@ void BKE_vfont_free_data(struct VFont *vfont)
        }
 }
 
-void BKE_vfont_free(struct VFont *vf)
+void BKE_vfont_free(struct VFont *vf, const bool UNUSED(do_id_user))
 {
-       if (vf == NULL) return;
-
        BKE_vfont_free_data(vf);
 
        if (vf->packedfile) {
index a3e945ce4cd3d8ec790ff63a741ba1b41f1a61e1..b824396eb89adc95e0315f1f3a72393ff278c8bf 100644 (file)
@@ -991,10 +991,10 @@ void BKE_libblock_free_ex(Main *bmain, void *idv, bool do_id_user)
                        BKE_screen_free((bScreen *)id, do_id_user);
                        break;
                case ID_VF:
-                       BKE_vfont_free((VFont *)id);
+                       BKE_vfont_free((VFont *)id, do_id_user);
                        break;
                case ID_TXT:
-                       BKE_text_free((Text *)id);
+                       BKE_text_free((Text *)id, do_id_user);
                        break;
                case ID_SCRIPT:
                        /* deprecated */
index 77d6043d6f35015c064a60c528262621e71d36bf..d360cd4991c9533e2610835833befb338ac8b172 100644 (file)
@@ -152,7 +152,7 @@ static void init_undo_text(Text *text)
        text->undo_buf = MEM_mallocN(text->undo_len, "undo buf");
 }
 
-void BKE_text_free(Text *text)
+void BKE_text_free(Text *text, const bool UNUSED(do_id_user))
 {
        TextLine *tmp;
 
@@ -164,10 +164,10 @@ void BKE_text_free(Text *text)
        
        BLI_freelistN(&text->lines);
 
-       if (text->name) MEM_freeN(text->name);
-       MEM_freeN(text->undo_buf);
+       MEM_SAFE_FREE(text->name);
+       MEM_SAFE_FREE(text->undo_buf);
 #ifdef WITH_PYTHON
-       if (text->compiled) BPY_text_free_code(text);
+       BPY_text_free_code(text);
 #endif
 }