From 8a977cbcc90f870acdb8c03366bfc2c35f4a0a6f Mon Sep 17 00:00:00 2001 From: Antony Riakiotakis Date: Tue, 13 Sep 2011 19:51:58 +0000 Subject: fix compilation for MinGW by substituting qsort_r with qsort. What aversion do MinGW guys have for including '_r' variants of functions anyway? Warning: a clean build will be needed probably to account for recent merge changes, or link errors will occur. --- source/blender/blenkernel/intern/navmesh_conversion.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source/blender') diff --git a/source/blender/blenkernel/intern/navmesh_conversion.cpp b/source/blender/blenkernel/intern/navmesh_conversion.cpp index cc3b926db75..9b373db59ff 100644 --- a/source/blender/blenkernel/intern/navmesh_conversion.cpp +++ b/source/blender/blenkernel/intern/navmesh_conversion.cpp @@ -289,6 +289,15 @@ struct SortContext const int* recastData; const int* trisToFacesMap; }; + +#ifdef FREE_WINDOWS +static SortContext *_mingw_context; +static int compareByData(const void * a, const void * b) +{ + return ( _mingw_context->recastData[_mingw_context->trisToFacesMap[*(int*)a]] - + _mingw_context->recastData[_mingw_context->trisToFacesMap[*(int*)b]] ); +} +#else #if defined(_MSC_VER) static int compareByData(void* data, const void * a, const void * b) #elif defined(__APPLE__) || defined(__FreeBSD__) @@ -301,6 +310,7 @@ static int compareByData(const void * a, const void * b, void* data) return ( context->recastData[context->trisToFacesMap[*(int*)a]] - context->recastData[context->trisToFacesMap[*(int*)b]] ); } +#endif bool buildNavMeshData(const int nverts, const float* verts, const int ntris, const unsigned short *tris, @@ -327,6 +337,9 @@ bool buildNavMeshData(const int nverts, const float* verts, qsort_s(trisMapping, ntris, sizeof(int), compareByData, &context); #elif defined(__APPLE__) || defined(__FreeBSD__) qsort_r(trisMapping, ntris, sizeof(int), &context, compareByData); +#elif defined(FREE_WINDOWS) + _mingw_context = &context; + qsort(trisMapping, ntris, sizeof(int), compareByData); #else qsort_r(trisMapping, ntris, sizeof(int), compareByData, &context); #endif -- cgit v1.2.3