[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