[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42205] branches/bmesh/blender/source/ blender/bmesh/intern/bmesh_operators.c: fix for minor memory leak for BMO_VInitOpf() in an error case, also use the BLI version of strdup().

Campbell Barton ideasman42 at gmail.com
Mon Nov 28 06:00:43 CET 2011


Revision: 42205
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42205
Author:   campbellbarton
Date:     2011-11-28 05:00:34 +0000 (Mon, 28 Nov 2011)
Log Message:
-----------
fix for minor memory leak for BMO_VInitOpf() in an error case, also use the BLI version of strdup(). 

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c

Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2011-11-28 04:19:44 UTC (rev 42204)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators.c	2011-11-28 05:00:34 UTC (rev 42205)
@@ -1126,14 +1126,14 @@
 	int noslot=0;
 
 	/*we muck around in here, so dup it*/
-	fmt = ofmt = strdup(fmt);
+	fmt = ofmt = BLI_strdup(fmt);
 	
 	/*find operator name*/
 	i = strcspn(fmt, " \t");
 
 	opname = fmt;
 	if (!opname[i]) noslot = 1;
-	opname[i] = 0;
+	opname[i] = '\0';
 
 	fmt += i + (noslot ? 0 : 1);
 	
@@ -1141,8 +1141,11 @@
 		if (!strcmp(opname, opdefines[i]->name)) break;
 	}
 
-	if (i == bmesh_total_ops) return 0;
-	
+	if (i == bmesh_total_ops) {
+		MEM_freeN(ofmt);
+		return 0;
+	}
+
 	BMO_Init_Op(bm, op, opname);
 	def = opdefines[i];
 	
@@ -1272,7 +1275,7 @@
 		fmt++;
 	}
 
-	free(ofmt);
+	MEM_freeN(ofmt);
 	return 1;
 error:
 	BMO_Finish_Op(bm, op);




More information about the Bf-blender-cvs mailing list