diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-09-20 16:39:20 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-09-20 16:39:20 +0300 |
commit | a5d985b441a668a10715a1855c4c56dca199f7cf (patch) | |
tree | 20ccc669f1cdb2bb18e10cb21fca6d59b7562d8d /source/blender/editors/sculpt_paint/sculpt_undo.c | |
parent | 52f19683f91dcb28a1da7cf9d88410db2637091a (diff) | |
parent | 87ad27ca89c3b1ce5243d6f67b42cd98ba99fd3f (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/sculpt_paint/sculpt_undo.c')
-rw-r--r-- | source/blender/editors/sculpt_paint/sculpt_undo.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c index b78d030407b..d05b974140b 100644 --- a/source/blender/editors/sculpt_paint/sculpt_undo.c +++ b/source/blender/editors/sculpt_paint/sculpt_undo.c @@ -591,10 +591,9 @@ static void sculpt_undo_restore_list(bContext *C, ListBase *lb) static void sculpt_undo_free_list(ListBase *lb) { - SculptUndoNode *unode; - int i; - - for (unode = lb->first; unode; unode = unode->next) { + SculptUndoNode *unode = lb->first; + while (unode != NULL) { + SculptUndoNode *unode_next = unode->next; if (unode->co) MEM_freeN(unode->co); if (unode->no) @@ -608,7 +607,7 @@ static void sculpt_undo_free_list(ListBase *lb) if (unode->vert_hidden) MEM_freeN(unode->vert_hidden); if (unode->grid_hidden) { - for (i = 0; i < unode->totgrid; i++) { + for (int i = 0; i < unode->totgrid; i++) { if (unode->grid_hidden[i]) MEM_freeN(unode->grid_hidden[i]); } @@ -629,6 +628,10 @@ static void sculpt_undo_free_list(ListBase *lb) CustomData_free(&unode->bm_enter_ldata, unode->bm_enter_totloop); if (unode->bm_enter_totpoly) CustomData_free(&unode->bm_enter_pdata, unode->bm_enter_totpoly); + + MEM_freeN(unode); + + unode = unode_next; } } |