[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54447] trunk/blender/source/blender/ editors/transform/transform_input.c: fix for memory leak in transform when changing transform modes within transform
Campbell Barton
ideasman42 at gmail.com
Mon Feb 11 03:06:20 CET 2013
Revision: 54447
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54447
Author: campbellbarton
Date: 2013-02-11 02:06:19 +0000 (Mon, 11 Feb 2013)
Log Message:
-----------
fix for memory leak in transform when changing transform modes within transform
(if you held down the R-key for example).
Modified Paths:
--------------
trunk/blender/source/blender/editors/transform/transform_input.c
Modified: trunk/blender/source/blender/editors/transform/transform_input.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_input.c 2013-02-11 01:55:58 UTC (rev 54446)
+++ trunk/blender/source/blender/editors/transform/transform_input.c 2013-02-11 02:06:19 UTC (rev 54447)
@@ -307,15 +307,8 @@
void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode)
{
- /* may have been allocated previously */
- /* TODO, holding R-key can cause mem leak, but this causes [#28903]
- * disable for now. */
-#if 0
- if (mi->data) {
- MEM_freeN(mi->data);
- mi->data = NULL;
- }
-#endif
+ /* incase we allocate a new value */
+ void *mi_data_prev = mi->data;
switch (mode) {
case INPUT_VECTOR:
@@ -374,6 +367,12 @@
break;
}
+ /* if we've allocated new data, free the old data
+ * less hassle then checking before every alloc above */
+ if (mi_data_prev && (mi_data_prev != mi->data)) {
+ MEM_freeN(mi_data_prev);
+ }
+
/* bootstrap mouse input with initial values */
applyMouseInput(t, mi, mi->imval, t->values);
}
More information about the Bf-blender-cvs
mailing list