Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-04-22 20:47:17 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-04-22 20:47:17 +0400
commit1518d43f270e02a400b989f10ba9dce54abf6cd9 (patch)
tree0a4b52175b08018b6918fc67a84db8381870fc12
parente520c498d26aa1e0b6abe63c24e593484135c0ac (diff)
cancelling bake wasn't freeing the bake mask.
-rw-r--r--source/blender/editors/object/object_bake.c15
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;
+ }
}
}
}