[Bf-blender-cvs] [2c0e32f] master: Fix for leak in freestyle FitCurve
Campbell Barton
noreply at git.blender.org
Tue Apr 1 00:15:36 CEST 2014
Commit: 2c0e32f4e4af6303c7215f2910b848937e2a3896
Author: Campbell Barton
Date: Tue Apr 1 09:14:59 2014 +1100
https://developer.blender.org/rB2c0e32f4e4af6303c7215f2910b848937e2a3896
Fix for leak in freestyle FitCurve
===================================================================
M source/blender/freestyle/intern/geometry/FitCurve.cpp
===================================================================
diff --git a/source/blender/freestyle/intern/geometry/FitCurve.cpp b/source/blender/freestyle/intern/geometry/FitCurve.cpp
index e517bf4..fbfa5b3 100644
--- a/source/blender/freestyle/intern/geometry/FitCurve.cpp
+++ b/source/blender/freestyle/intern/geometry/FitCurve.cpp
@@ -557,17 +557,20 @@ void FitCurveWrapper::FitCubic(Vector2 *d, int first, int last, Vector2 tHat1, V
if (maxError < iterationError) {
for (i = 0; i < maxIterations; i++) {
uPrime = Reparameterize(d, first, last, u, bezCurve);
- bezCurve = GenerateBezier(d, first, last, uPrime, tHat1, tHat2);
- maxError = ComputeMaxError(d, first, last,
- bezCurve, uPrime, &splitPoint);
+
+ free((void *)u);
+ free((void *)bezCurve);
+ u = uPrime;
+
+ bezCurve = GenerateBezier(d, first, last, u, tHat1, tHat2);
+ maxError = ComputeMaxError(d, first, last, bezCurve, u, &splitPoint);
+
if (maxError < error) {
DrawBezierCurve(3, bezCurve);
free((void *)u);
free((void *)bezCurve);
return;
}
- free((void *)u);
- u = uPrime;
}
}
More information about the Bf-blender-cvs
mailing list