[Bf-blender-cvs] [d73683a] multiview: Fix unfreed memory when using sequence of files
Dalai Felinto
noreply at git.blender.org
Wed Sep 10 20:26:18 CEST 2014
Commit: d73683af12470702c92f5e8dafff14006b3f2b60
Author: Dalai Felinto
Date: Wed Sep 10 19:18:10 2014 +0200
Branches: multiview
https://developer.blender.org/rBd73683af12470702c92f5e8dafff14006b3f2b60
Fix unfreed memory when using sequence of files
(I have fixed it movie and image but forgot about the above)
===================================================================
M source/blender/blenkernel/intern/image.c
===================================================================
diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c
index 1f21ff5..cb131f9 100644
--- a/source/blender/blenkernel/intern/image.c
+++ b/source/blender/blenkernel/intern/image.c
@@ -2927,16 +2927,20 @@ static ImBuf *image_load_sequence_file(Image *ima, ImageUser *iuser, int frame)
IMB_ImBufFromStereo(ima->stereo3d_format, &ibuf[0], &ibuf[1]);
if (assign) {
- if (!is_multiview)
- image_assign_ibuf(ima, ibuf[0], 0, frame);
- else
- for (i = 0; i < totviews; i++)
- image_assign_ibuf(ima, ibuf[i], i, frame);
+ for (i = 0; i < totviews; i++)
+ image_assign_ibuf(ima, ibuf[i], i, frame);
}
/* return the original requested ImBuf */
r_ibuf = ibuf[is_multiview ? (iuser ? iuser->multi_index : 0) : 0];
+ /* "remove" the others (decrease their refcount) */
+ for (i = 0; i < totviews; i++) {
+ if (ibuf[i] != r_ibuf) {
+ IMB_freeImBuf(ibuf[i]);
+ }
+ }
+
if (iuser)
iuser->ok = ima->ok;
More information about the Bf-blender-cvs
mailing list