[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46874] trunk/blender/source/blender/ compositor: Fix imbuf users leak in MovieClip tiles node
Sergey Sharybin
sergey.vfx at gmail.com
Tue May 22 11:15:06 CEST 2012
Revision: 46874
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46874
Author: nazgul
Date: 2012-05-22 09:15:05 +0000 (Tue, 22 May 2012)
Log Message:
-----------
Fix imbuf users leak in MovieClip tiles node
Leak was caused by not calling IMB_freeImBuf for result of BKE_movieclip_get_ibuf
Modified Paths:
--------------
trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp
trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp
Modified: trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp 2012-05-22 09:15:01 UTC (rev 46873)
+++ trunk/blender/source/blender/compositor/nodes/COM_MovieClipNode.cpp 2012-05-22 09:15:05 UTC (rev 46874)
@@ -30,6 +30,7 @@
#include "DNA_movieclip_types.h"
#include "BKE_movieclip.h"
#include "BKE_tracking.h"
+ #include "IMB_imbuf.h"
}
MovieClipNode::MovieClipNode(bNode *editorNode): Node(editorNode)
@@ -118,4 +119,8 @@
angleMovieClip->relinkConnections(operationSetValue->getOutputSocket());
graph->addOperation(operationSetValue);
}
+
+ if (ibuf) {
+ IMB_freeImBuf(ibuf);
+ }
}
Modified: trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp
===================================================================
--- trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp 2012-05-22 09:15:01 UTC (rev 46873)
+++ trunk/blender/source/blender/compositor/operations/COM_MovieClipOperation.cpp 2012-05-22 09:15:05 UTC (rev 46874)
@@ -61,21 +61,27 @@
void MovieClipOperation::deinitExecution()
{
- this->movieClipBuffer = NULL;
+ if (this->movieClipBuffer) {
+ IMB_freeImBuf(this->movieClipBuffer);
+
+ this->movieClipBuffer = NULL;
+ }
}
void MovieClipOperation::determineResolution(unsigned int resolution[], unsigned int preferredResolution[])
{
ImBuf *ibuf;
- resolution[0] = 0;
- resolution[1] = 0;
+ resolution[0] = 0;
+ resolution[1] = 0;
if (this->movieClip) {
ibuf = BKE_movieclip_get_ibuf(this->movieClip, this->movieClipUser);
if (ibuf) {
resolution[0] = ibuf->x;
resolution[1] = ibuf->y;
+
+ IMB_freeImBuf(ibuf);
}
}
}
More information about the Bf-blender-cvs
mailing list