diff options
-rw-r--r-- | source/blender/blenkernel/BKE_displist.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 22 |
2 files changed, 5 insertions, 18 deletions
diff --git a/source/blender/blenkernel/BKE_displist.h b/source/blender/blenkernel/BKE_displist.h index ac8c601c5a5..32da11d0a9b 100644 --- a/source/blender/blenkernel/BKE_displist.h +++ b/source/blender/blenkernel/BKE_displist.h @@ -136,7 +136,6 @@ typedef struct DispList { extern void copy_displist(struct ListBase *lbn, struct ListBase *lb); extern void free_disp_elem(DispList *dl); -extern void free_displist_by_type(struct ListBase *lb, int type); extern DispList *find_displist_create(struct ListBase *lb, int type); extern DispList *find_displist(struct ListBase *lb, int type); extern void addnormalsDispList(struct Object *ob, struct ListBase *lb); diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 739376591ef..1314bb996f4 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -351,6 +351,10 @@ static void freedisplist_object(Object *ob) if(ob->type==OB_MESH) { Mesh *me= ob->data; freedisplist(&me->disp); + if (me->derived) { + me->derived->release(me->derived); + me->derived = NULL; + } } else if(ob->type==OB_CURVE || ob->type==OB_SURF || ob->type==OB_FONT) { Curve *cu= ob->data; @@ -358,22 +362,6 @@ static void freedisplist_object(Object *ob) } } -void free_displist_by_type(ListBase *lb, int type) -{ - DispList *dl; - - for (dl= lb->first; dl; ) { - DispList *next= dl->next; - - if (dl->type==type) { - BLI_remlink(lb, dl); - free_disp_elem(dl); - } - - dl= next; - } -} - DispList *find_displist_create(ListBase *lb, int type) { DispList *dl; @@ -1764,7 +1752,7 @@ void makeDispList(Object *ob) if(ob->type==OB_MESH) { me= ob->data; - freedisplist(&(me->disp)); + freedisplist(&me->disp); if (me->derived) { me->derived->release(me->derived); me->derived= NULL; |