[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60399] trunk/blender/intern/elbeem: Elbeem: fix memory leak and add guarded allocator directives
Sergey Sharybin
sergey.vfx at gmail.com
Fri Sep 27 20:55:27 CEST 2013
Revision: 60399
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60399
Author: nazgul
Date: 2013-09-27 18:55:26 +0000 (Fri, 27 Sep 2013)
Log Message:
-----------
Elbeem: fix memory leak and add guarded allocator directives
Modified Paths:
--------------
trunk/blender/intern/elbeem/CMakeLists.txt
trunk/blender/intern/elbeem/SConscript
trunk/blender/intern/elbeem/intern/attributes.h
trunk/blender/intern/elbeem/intern/controlparticles.h
trunk/blender/intern/elbeem/intern/isosurface.h
trunk/blender/intern/elbeem/intern/mvmcoords.h
trunk/blender/intern/elbeem/intern/ntl_blenderdumper.h
trunk/blender/intern/elbeem/intern/ntl_bsptree.h
trunk/blender/intern/elbeem/intern/ntl_geometryclass.h
trunk/blender/intern/elbeem/intern/ntl_geometrymodel.h
trunk/blender/intern/elbeem/intern/ntl_geometryobject.h
trunk/blender/intern/elbeem/intern/ntl_geometryshader.h
trunk/blender/intern/elbeem/intern/ntl_lighting.h
trunk/blender/intern/elbeem/intern/ntl_matrices.h
trunk/blender/intern/elbeem/intern/ntl_ray.h
trunk/blender/intern/elbeem/intern/ntl_vector3dim.h
trunk/blender/intern/elbeem/intern/ntl_world.h
trunk/blender/intern/elbeem/intern/parametrizer.h
trunk/blender/intern/elbeem/intern/particletracer.cpp
trunk/blender/intern/elbeem/intern/particletracer.h
trunk/blender/intern/elbeem/intern/simulation_object.h
trunk/blender/intern/elbeem/intern/solver_class.h
trunk/blender/intern/elbeem/intern/solver_control.cpp
trunk/blender/intern/elbeem/intern/solver_control.h
trunk/blender/intern/elbeem/intern/solver_interface.h
Modified: trunk/blender/intern/elbeem/CMakeLists.txt
===================================================================
--- trunk/blender/intern/elbeem/CMakeLists.txt 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/CMakeLists.txt 2013-09-27 18:55:26 UTC (rev 60399)
@@ -25,6 +25,7 @@
set(INC
extern
+ ../guardedalloc
)
set(INC_SYS
Modified: trunk/blender/intern/elbeem/SConscript
===================================================================
--- trunk/blender/intern/elbeem/SConscript 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/SConscript 2013-09-27 18:55:26 UTC (rev 60399)
@@ -43,6 +43,6 @@
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
defs += ' USE_MSVC6FIXES'
incs += ' ' + env['BF_PNG_INC'] + ' ' + env['BF_ZLIB_INC']
-incs += ' extern '
+incs += ' extern ../../guardedalloc'
env.BlenderLib ('bf_intern_elbeem', sources, Split(incs), Split(defs), libtype='intern', priority=0 )
Modified: trunk/blender/intern/elbeem/intern/attributes.h
===================================================================
--- trunk/blender/intern/elbeem/intern/attributes.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/attributes.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -14,6 +14,11 @@
#ifndef NTL_ATTRIBUTES_H
#include "utilities.h"
+
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
template<class T> class ntlMatrix4x4;
class ntlSetVec3f;
std::ostream& operator<<( std::ostream& os, const ntlSetVec3f& i );
@@ -110,6 +115,11 @@
vector<Scalar> mValue;
/*! anim channel attr times */
vector<double> mTimes;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:AnimChannel")
+#endif
};
@@ -127,6 +137,11 @@
ntlSetVec3f& operator*=( const ntlSetVec3f &v );
vector<ntlVec3f> mVerts;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlSetVec3f")
+#endif
};
@@ -163,6 +178,11 @@
protected:
bool initChannel(int elemSize);
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:Attribute")
+#endif
};
@@ -195,6 +215,11 @@
bool ignoreParameter(string name, string source);
void print();
protected:
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:AttributeList")
+#endif
};
ntlVec3f channelFindMaxVf (AnimChannel<ntlVec3f> channel);
Modified: trunk/blender/intern/elbeem/intern/controlparticles.h
===================================================================
--- trunk/blender/intern/elbeem/intern/controlparticles.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/controlparticles.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -18,6 +18,10 @@
#include "ntl_geometrymodel.h"
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
// indicator for LBM inclusion
//#ifndef LBMDIM
@@ -80,6 +84,11 @@
forceAtt = forceVel = forceMaxd = LbmVec(0.,0.,0.);
compAvWeight=0.; compAv=LbmVec(0.);
};
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ControlForces")
+#endif
};
@@ -115,6 +124,11 @@
// init all zero / defaults
void reset();
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ControlParticle")
+#endif
};
@@ -128,6 +142,10 @@
// particle positions
std::vector<ControlParticle> particles;
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ControlParticleSet")
+#endif
};
@@ -296,6 +314,11 @@
void initTimeArray(LbmFloat t, std::vector<ControlParticle> &parts);
bool checkPointInside(ntlTree *tree, ntlVec3Gfx org, gfxReal &distance);
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ControlParticles")
+#endif
};
Modified: trunk/blender/intern/elbeem/intern/isosurface.h
===================================================================
--- trunk/blender/intern/elbeem/intern/isosurface.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/isosurface.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -15,6 +15,10 @@
#include "ntl_geometryobject.h"
#include "ntl_bsptree.h"
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
#define ISO_STRICT_DEBUG 0
#define ISOSTRICT_EXIT *((int *)0)=0;
@@ -224,6 +228,11 @@
vector<int> mDboundary;
float mSCrad1, mSCrad2;
ntlVec3Gfx mSCcenter;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:IsoSurface")
+#endif
};
Modified: trunk/blender/intern/elbeem/intern/mvmcoords.h
===================================================================
--- trunk/blender/intern/elbeem/intern/mvmcoords.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/mvmcoords.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -34,6 +34,10 @@
#include "ieeefp.h"
#endif
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
// weight and triangle index
class mvmIndexWeight {
public:
@@ -49,6 +53,11 @@
mvmFloat weight;
int index;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:mvmIndexWeight")
+#endif
};
// transfer point with weights
@@ -58,6 +67,11 @@
ntlVec3Gfx lastpos;
//! triangle weights
std::vector<mvmIndexWeight> weights;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:mvmTransferPoint")
+#endif
};
@@ -86,6 +100,10 @@
std::vector<mvmTransferPoint> mVertices;
int mNumVerts;
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:MeanValueMeshCoords")
+#endif
};
#endif
Modified: trunk/blender/intern/elbeem/intern/ntl_blenderdumper.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_blenderdumper.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_blenderdumper.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -12,6 +12,10 @@
#ifndef NTL_BLENDERDUMPER_H
#include "ntl_world.h"
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
class ntlBlenderDumper :
public ntlWorld
{
@@ -27,6 +31,10 @@
protected:
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlBlenderDumper")
+#endif
};
#define NTL_BLENDERDUMPER_H
Modified: trunk/blender/intern/elbeem/intern/ntl_bsptree.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_bsptree.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_bsptree.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -22,6 +22,9 @@
#define BSP_STACK_SIZE 50
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
//! bsp tree stack classes, defined in ntl_bsptree.cpp,
// detailed definition unnecesseary here
@@ -120,6 +123,10 @@
//! duplicated triangles, inited during subdivide
int mTriDoubles;
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlTree")
+#endif
};
Modified: trunk/blender/intern/elbeem/intern/ntl_geometryclass.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_geometryclass.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_geometryclass.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -16,6 +16,10 @@
#include "attributes.h"
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
//! geometry class type ids
#define GEOCLASSTID_OBJECT 1
#define GEOCLASSTID_SHADER 2
@@ -111,6 +115,10 @@
private:
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlGeometryClass")
+#endif
};
Modified: trunk/blender/intern/elbeem/intern/ntl_geometrymodel.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_geometrymodel.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_geometrymodel.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -14,6 +14,10 @@
#include "ntl_geometryobject.h"
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
/*! A simple box object generatedd by 12 triangles */
class ntlGeometryObjModel : public ntlGeometryObject
{
@@ -89,6 +93,11 @@
/*! set data file name */
inline void setFilename(string set) { mFilename = set; }
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlGeometryObjModel")
+#endif
};
#endif
Modified: trunk/blender/intern/elbeem/intern/ntl_geometryobject.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_geometryobject.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_geometryobject.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -16,6 +16,11 @@
#include "ntl_geometryclass.h"
#include "ntl_lighting.h"
#include "ntl_ray.h"
+
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
class ntlRenderGlobals;
class ntlTriangle;
@@ -240,6 +245,10 @@
public:
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlGeometryObject")
+#endif
};
#endif
Modified: trunk/blender/intern/elbeem/intern/ntl_geometryshader.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_geometryshader.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_geometryshader.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -13,6 +13,11 @@
#define NTL_GEOMETRYSHADER_H
#include "ntl_geometryclass.h"
+
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
class ntlGeometryObject;
class ntlRenderGlobals;
@@ -57,6 +62,11 @@
/*! surface output name for this simulation */
string mOutFilename;
+
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlGeometryShader")
+#endif
};
#endif
Modified: trunk/blender/intern/elbeem/intern/ntl_lighting.h
===================================================================
--- trunk/blender/intern/elbeem/intern/ntl_lighting.h 2013-09-27 18:55:15 UTC (rev 60398)
+++ trunk/blender/intern/elbeem/intern/ntl_lighting.h 2013-09-27 18:55:26 UTC (rev 60399)
@@ -14,6 +14,11 @@
#define NTL_LIGHTING_H
#include "ntl_vector3dim.h"
+
+#ifdef WITH_CXX_GUARDEDALLOC
+# include "MEM_guardedalloc.h"
+#endif
+
class ntlMaterial;
class ntlRay;
class ntlRenderGlobals;
@@ -88,6 +93,10 @@
private:
+private:
+#ifdef WITH_CXX_GUARDEDALLOC
+ MEM_CXX_CLASS_ALLOC_FUNCS("ELBEEM:ntlLightObject")
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list