diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-04-22 20:47:17 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-04-22 20:47:17 +0400 |
commit | 1518d43f270e02a400b989f10ba9dce54abf6cd9 (patch) | |
tree | 0a4b52175b08018b6918fc67a84db8381870fc12 /source/blender/editors/object/object_bake.c | |
parent | e520c498d26aa1e0b6abe63c24e593484135c0ac (diff) |
cancelling bake wasn't freeing the bake mask.
Diffstat (limited to 'source/blender/editors/object/object_bake.c')
-rw-r--r-- | source/blender/editors/object/object_bake.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index b4a358150e8..b513bab3924 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -189,9 +189,18 @@ static void finish_bake_internal(BakeRender *bkr) for(ima= G.main->image.first; ima; ima= ima->id.next) { if(ima->ok==IMA_OK_LOADED) { ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - if(ibuf && (ibuf->userflags & IB_BITMAPDIRTY)) { - GPU_free_image(ima); - imb_freemipmapImBuf(ibuf); + if(ibuf) { + if(ibuf->userflags & IB_BITMAPDIRTY) { + GPU_free_image(ima); + imb_freemipmapImBuf(ibuf); + } + + /* freed when baking is done, but if its canceled we need to free here */ + if (ibuf->userdata) { + printf("freed\n"); + MEM_freeN(ibuf->userdata); + ibuf->userdata= NULL; + } } } } |