GSOC 2013 paint
[blender-staging.git] / source / blender / editors / sculpt_paint / sculpt_undo.c
index 0d49049c78e1b628dc0adbd8f3f03b0578b23af7..614c1f3ef1d4c7b21938ef7725a52e073763d592 100644 (file)
@@ -543,7 +543,7 @@ static void sculpt_undo_free(ListBase *lb)
        }
 }
 
-bool sculpt_undo_cleanup(bContext *C, ListBase *lb)
+static bool sculpt_undo_cleanup(bContext *C, ListBase *lb)
 {
        Object *ob = CTX_data_active_object(C);
        SculptUndoNode *unode;
@@ -551,10 +551,8 @@ bool sculpt_undo_cleanup(bContext *C, ListBase *lb)
        unode = lb->first;
 
        if (unode && strcmp(unode->idname, ob->id.name) != 0) {
-               for (unode = lb->first; unode; unode = unode->next) {
-                       if (unode->bm_entry)
-                               BM_log_cleanup_entry(unode->bm_entry);
-               }
+               if (unode->bm_entry)
+                       BM_log_cleanup_entry(unode->bm_entry);
 
                return true;
        }
@@ -881,7 +879,7 @@ SculptUndoNode *sculpt_undo_push_node(Object *ob, PBVHNode *node,
 void sculpt_undo_push_begin(const char *name)
 {
        ED_undo_paint_push_begin(UNDO_PAINT_MESH, name,
-                                sculpt_undo_restore, sculpt_undo_free);
+                                sculpt_undo_restore, sculpt_undo_free, sculpt_undo_cleanup);
 }
 
 void sculpt_undo_push_end(void)