diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-20 20:24:50 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-20 20:24:50 +0400 |
commit | 0169079bd1c3ce69690153321fb09c3647b9d930 (patch) | |
tree | f0ff89e8acdabe3d6e64dde5a7475aeddb55118e /source/gameengine | |
parent | 219eeb3e54741340065bcef7188aa83ca5953fa3 (diff) |
Get rid of c++ in blenkernel and modifiers
Also use guarded allocations for navmesh stuff.
Diffstat (limited to 'source/gameengine')
-rw-r--r-- | source/gameengine/Ketsji/KX_NavMeshObject.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_NavMeshObject.cpp b/source/gameengine/Ketsji/KX_NavMeshObject.cpp index f72c98fb4bf..5747d8641d0 100644 --- a/source/gameengine/Ketsji/KX_NavMeshObject.cpp +++ b/source/gameengine/Ketsji/KX_NavMeshObject.cpp @@ -26,6 +26,8 @@ * ***** END GPL LICENSE BLOCK ***** */ +#include "MEM_guardedalloc.h" + #include "BLI_math_vector.h" #include "KX_NavMeshObject.h" #include "RAS_MeshObject.h" @@ -117,8 +119,12 @@ bool KX_NavMeshObject::BuildVertIndArrays(float *&vertices, int& nverts, int *dtrisToPolysMap=NULL, *dtrisToTrisMap=NULL, *trisToFacesMap=NULL; int nAllVerts = 0; float *allVerts = NULL; - buildNavMeshDataByDerivedMesh(dm, vertsPerPoly, nAllVerts, allVerts, ndtris, dtris, - npolys, dmeshes, polys, dtrisToPolysMap, dtrisToTrisMap, trisToFacesMap); + buildNavMeshDataByDerivedMesh(dm, &vertsPerPoly, &nAllVerts, &allVerts, &ndtris, &dtris, + &npolys, &dmeshes, &polys, &dtrisToPolysMap, &dtrisToTrisMap, &trisToFacesMap); + + MEM_freeN(dtrisToPolysMap); + MEM_freeN(dtrisToTrisMap); + MEM_freeN(trisToFacesMap); unsigned short *verticesMap = new unsigned short[nAllVerts]; memset(verticesMap, 0xffff, sizeof(unsigned short)*nAllVerts); @@ -207,6 +213,8 @@ bool KX_NavMeshObject::BuildVertIndArrays(float *&vertices, int& nverts, } } } + + MEM_freeN(allVerts); } else { @@ -445,7 +453,12 @@ bool KX_NavMeshObject::BuildNavMesh() m_navMesh->init(data, dataSize, true); delete [] vertices; - delete [] polys; + + /* navmesh conversion is using C guarded alloc for memory allocaitons */ + MEM_freeN(polys); + if (dmeshes) MEM_freeN(dmeshes); + if (dtris) MEM_freeN(dtris); + if (dvertices) { delete [] dvertices; |