[Bf-blender-cvs] [4bb1566] multiview: Fix unfreed memory on duplicated windows and others
Dalai Felinto
noreply at git.blender.org
Wed Sep 17 14:12:31 CEST 2014
Commit: 4bb1566944a0c6418a6ad2ed0eb64c097a882cd7
Author: Dalai Felinto
Date: Mon Sep 15 19:22:40 2014 +0200
Branches: multiview
https://developer.blender.org/rB4bb1566944a0c6418a6ad2ed0eb64c097a882cd7
Fix unfreed memory on duplicated windows and others
===================================================================
M source/blender/blenkernel/intern/image.c
M source/blender/editors/screen/screen_ops.c
M source/blender/imbuf/intern/openexr/openexr_api.cpp
M source/blender/windowmanager/intern/wm_window.c
===================================================================
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 1f7c030..5ca7b1d 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2837,6 +2837,7 @@ static void image_add_buffer_cb(void *base, const char *str, ImBuf *ibuf, const
colorspace, to_colorspace, predivide);
image_assign_ibuf(ima, ibuf, id, frame);
+ IMB_freeImBuf(ibuf);
}
static void image_update_multiview_flags(Image *ima)
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 1ccb17b..9a6938f 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -929,7 +929,7 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, const wmEvent *event)
rect.ymax = rect.ymin + BLI_rcti_size_y(&rect) / U.pixelsize;
newwin = WM_window_open(C, &rect);
- newwin->stereo3d_format = MEM_dupallocN(win->stereo3d_format);
+ *newwin->stereo3d_format = *win->stereo3d_format;
/* allocs new screen and adds to newly created window, using window size */
newsc = ED_screen_add(newwin, CTX_data_scene(C), sc->id.name + 2);
diff --git a/source/blender/imbuf/intern/openexr/openexr_api.cpp b/source/blender/imbuf/intern/openexr/openexr_api.cpp
index 28f275e..fce79ee 100644
--- a/source/blender/imbuf/intern/openexr/openexr_api.cpp
+++ b/source/blender/imbuf/intern/openexr/openexr_api.cpp
@@ -1346,13 +1346,11 @@ void IMB_exr_singlelayer_multiview_convert(void *handle, void *base,
if (STREQ(zpass->chan_id, "Z") && STREQ(zpass->view, pass->view)) {
addzbuffloatImBuf(ibuf);
memcpy(ibuf->zbuf_float, zpass->rect, sizeof(float) * ibuf->x * ibuf->y);
- zpass->rect = NULL;
}
}
}
addbuffer(base, pass->view, ibuf, frame);
- pass->rect = NULL;
}
}
}
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index b03e983..459a375 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -264,7 +264,7 @@ wmWindow *wm_window_copy(bContext *C, wmWindow *winorig)
win->drawdata.first = win->drawdata.last = NULL;
- win->stereo3d_format = MEM_dupallocN(winorig->stereo3d_format);
+ *win->stereo3d_format = *winorig->stereo3d_format;
return win;
}
More information about the Bf-blender-cvs
mailing list