[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56809] trunk/blender/source/blender/ freestyle/intern: More fix for memory leaks in the Freestyle module.

Tamito Kajiyama rd6t-kjym at asahi-net.or.jp
Wed May 15 03:30:04 CEST 2013


Revision: 56809
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56809
Author:   kjym3
Date:     2013-05-15 01:30:03 +0000 (Wed, 15 May 2013)
Log Message:
-----------
More fix for memory leaks in the Freestyle module.

Modified Paths:
--------------
    trunk/blender/source/blender/freestyle/intern/application/Controller.cpp
    trunk/blender/source/blender/freestyle/intern/geometry/FitCurve.cpp
    trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.cpp
    trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.h
    trunk/blender/source/blender/freestyle/intern/system/TimeStamp.cpp
    trunk/blender/source/blender/freestyle/intern/system/TimeStamp.h

Modified: trunk/blender/source/blender/freestyle/intern/application/Controller.cpp
===================================================================
--- trunk/blender/source/blender/freestyle/intern/application/Controller.cpp	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/application/Controller.cpp	2013-05-15 01:30:03 UTC (rev 56809)
@@ -165,6 +165,11 @@
 		_inter = NULL;
 	}
 
+	if (_ProgressBar) {
+		delete _ProgressBar;
+		_ProgressBar = NULL;
+	}
+
 	//delete _current_dirs;
 }
 

Modified: trunk/blender/source/blender/freestyle/intern/geometry/FitCurve.cpp
===================================================================
--- trunk/blender/source/blender/freestyle/intern/geometry/FitCurve.cpp	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/geometry/FitCurve.cpp	2013-05-15 01:30:03 UTC (rev 56809)
@@ -487,6 +487,8 @@
 
 	FitCurve(d, size, error);
 
+	delete[] d;
+
 	// copy results
 	for (vector<Vector2>::iterator v = _vertices.begin(), vend = _vertices.end(); v != vend; ++v) {
 		oCurve.push_back(Vec2d(v->x(), v->y())) ;

Modified: trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.cpp
===================================================================
--- trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.cpp	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.cpp	2013-05-15 01:30:03 UTC (rev 56809)
@@ -32,15 +32,12 @@
 
 namespace Freestyle {
 
-static const unsigned NB_VALUE_NOISE = 512;
+real PseudoNoise::_values[];
 
-real *PseudoNoise::_values;
-
 PseudoNoise::PseudoNoise() {}
 
 void PseudoNoise::init(long seed)
 {
-	_values = new real[NB_VALUE_NOISE];
 	RandGen::srand48(seed);
 	for (unsigned int i = 0; i < NB_VALUE_NOISE; i++)
 		_values[i] = -1.0 + 2.0 * RandGen::drand48();

Modified: trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.h
===================================================================
--- trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.h	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/system/PseudoNoise.h	2013-05-15 01:30:03 UTC (rev 56809)
@@ -53,7 +53,8 @@
 	static void init(long seed);
 
 protected:
-	static real *_values;
+	static const unsigned NB_VALUE_NOISE = 512;
+	static real _values[NB_VALUE_NOISE];
 
 #ifdef WITH_CXX_GUARDEDALLOC
 public:

Modified: trunk/blender/source/blender/freestyle/intern/system/TimeStamp.cpp
===================================================================
--- trunk/blender/source/blender/freestyle/intern/system/TimeStamp.cpp	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/system/TimeStamp.cpp	2013-05-15 01:30:03 UTC (rev 56809)
@@ -30,6 +30,6 @@
 namespace Freestyle {
 
 LIB_SYSTEM_EXPORT
-TimeStamp *TimeStamp::_instance = 0;
+TimeStamp TimeStamp::_instance;
 
 } /* namespace Freestyle */

Modified: trunk/blender/source/blender/freestyle/intern/system/TimeStamp.h
===================================================================
--- trunk/blender/source/blender/freestyle/intern/system/TimeStamp.h	2013-05-14 22:52:10 UTC (rev 56808)
+++ trunk/blender/source/blender/freestyle/intern/system/TimeStamp.h	2013-05-15 01:30:03 UTC (rev 56809)
@@ -41,9 +41,7 @@
 public:
 	static inline TimeStamp *instance()
 	{
-		if (_instance == NULL)
-			_instance = new TimeStamp;
-		return _instance;
+		return &_instance;
 	}
 
 	inline unsigned getTimeStamp() const
@@ -70,7 +68,7 @@
 	TimeStamp(const TimeStamp&) {}
 
 private:
-	static TimeStamp *_instance;
+	static TimeStamp _instance;
 	unsigned _time_stamp;
 
 #ifdef WITH_CXX_GUARDEDALLOC




More information about the Bf-blender-cvs mailing list