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;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to