From c67a70cb09083e24e29c9e52ea2358ecae15017c Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sat, 29 Jul 2017 13:40:03 +0200 Subject: [PATCH 1/2] compile fixes --- src/LinearMath/btConvexHullComputer.cpp | 15 ++++++++++++++- src/LinearMath/btThreads.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/LinearMath/btConvexHullComputer.cpp b/src/LinearMath/btConvexHullComputer.cpp index d58ac955f..c49675daa 100644 --- a/src/LinearMath/btConvexHullComputer.cpp +++ b/src/LinearMath/btConvexHullComputer.cpp @@ -1278,7 +1278,20 @@ void btConvexHullInternal::computeInternal(int start, int end, IntermediateHull& return; } } - // lint -fallthrough + { + Vertex* v = originalVertices[start]; + v->edges = NULL; + v->next = v; + v->prev = v; + + result.minXy = v; + result.maxXy = v; + result.minYx = v; + result.maxYx = v; + } + + return; + } case 1: { Vertex* v = originalVertices[start]; diff --git a/src/LinearMath/btThreads.h b/src/LinearMath/btThreads.h index 781e9b1f5..05fd15ec8 100644 --- a/src/LinearMath/btThreads.h +++ b/src/LinearMath/btThreads.h @@ -98,6 +98,7 @@ SIMD_FORCE_INLINE bool btMutexTryLock( btSpinMutex* mutex ) class btIParallelForBody { public: + virtual ~btIParallelForBody() {} virtual void forLoop( int iBegin, int iEnd ) const = 0; }; From 457312f94fe7eac7f2d928444c9881a867328eb7 Mon Sep 17 00:00:00 2001 From: erwincoumans Date: Fri, 11 Aug 2017 17:14:52 -0700 Subject: [PATCH 2/2] fix leak in loadSDF in case of visuals with duplicate/identical names that have a material. fix GUI performance issue on Mac OSX fix issue introduced in previous commit (in btConvexHullComputer.cpp) --- .../Importers/ImportURDFDemo/UrdfParser.cpp | 9 +++++++++ .../SharedMemoryInProcessPhysicsC_API.cpp | 10 +++++----- src/LinearMath/btConvexHullComputer.cpp | 20 +++++++++---------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/examples/Importers/ImportURDFDemo/UrdfParser.cpp b/examples/Importers/ImportURDFDemo/UrdfParser.cpp index 9e9594e81..38b10ad17 100644 --- a/examples/Importers/ImportURDFDemo/UrdfParser.cpp +++ b/examples/Importers/ImportURDFDemo/UrdfParser.cpp @@ -569,6 +569,15 @@ bool UrdfParser::parseVisual(UrdfModel& model, UrdfVisual& visual, TiXmlElement* matPtr->m_name = "mat"; if (name_char) matPtr->m_name = name_char; + + UrdfMaterial** oldMatPtrPtr = model.m_materials[matPtr->m_name.c_str()]; + if (oldMatPtrPtr) + { + UrdfMaterial* oldMatPtr = *oldMatPtrPtr; + model.m_materials.remove(matPtr->m_name.c_str()); + if (oldMatPtr) + delete oldMatPtr; + } model.m_materials.insert(matPtr->m_name.c_str(),matPtr); { TiXmlElement *diffuse = mat->FirstChildElement("diffuse"); diff --git a/examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp b/examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp index 5a545795b..142d42a30 100644 --- a/examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp +++ b/examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp @@ -53,13 +53,13 @@ public: } } { - //unsigned long int ms = m_clock.getTimeMilliseconds(); - //if (ms>2) + unsigned long int ms = m_clock.getTimeMilliseconds(); + if (ms>2) { - // B3_PROFILE("m_clock.reset()"); + B3_PROFILE("m_clock.reset()"); - // m_clock.reset(); - btUpdateInProcessExampleBrowserMainThread(m_data); + btUpdateInProcessExampleBrowserMainThread(m_data); + m_clock.reset(); } } { diff --git a/src/LinearMath/btConvexHullComputer.cpp b/src/LinearMath/btConvexHullComputer.cpp index c49675daa..2ea22cbe3 100644 --- a/src/LinearMath/btConvexHullComputer.cpp +++ b/src/LinearMath/btConvexHullComputer.cpp @@ -1277,21 +1277,21 @@ void btConvexHullInternal::computeInternal(int start, int end, IntermediateHull& return; } - } - { - Vertex* v = originalVertices[start]; - v->edges = NULL; - v->next = v; - v->prev = v; + { + Vertex* v = originalVertices[start]; + v->edges = NULL; + v->next = v; + v->prev = v; - result.minXy = v; - result.maxXy = v; - result.minYx = v; - result.maxYx = v; + result.minXy = v; + result.maxXy = v; + result.minYx = v; + result.maxYx = v; } return; } + case 1: { Vertex* v = originalVertices[start];