fix a potential memory leak for URDF files with multiple materials using the same name
This commit is contained in:
@@ -620,6 +620,15 @@ bool UrdfParser::parseVisual(UrdfModel& model, UrdfVisual& visual, TiXmlElement*
|
||||
if (parseMaterial(visual.m_geometry.m_localMaterial, mat,logger))
|
||||
{
|
||||
UrdfMaterial* matPtr = new UrdfMaterial(visual.m_geometry.m_localMaterial);
|
||||
|
||||
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);
|
||||
visual.m_geometry.m_hasLocalMaterial = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user