From dc5cc018f17c2d0858d16026ba6309261cb72390 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Fri, 30 Jan 2009 02:30:32 +0000 Subject: [PATCH] ColladaConverter: when trying to create a unique name, double-check if it doesn't exist yet --- .../BulletColladaConverter/ColladaConverter.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Extras/BulletColladaConverter/ColladaConverter.cpp b/Extras/BulletColladaConverter/ColladaConverter.cpp index 9568c3fdb..873844639 100644 --- a/Extras/BulletColladaConverter/ColladaConverter.cpp +++ b/Extras/BulletColladaConverter/ColladaConverter.cpp @@ -2413,7 +2413,13 @@ void ColladaConverter::syncOrAddRigidBody (btRigidBody* body) if (!nodeName) { - snprintf(&nodeNameGen[0], 512, "BulletUnnamed-%d", random_node_name_key++); + //repeat until we have a unique name + do + { + snprintf(&nodeNameGen[0], 512, "BulletUnnamed-%d", random_node_name_key++); + } + while (findNode(&nodeNameGen[0])); + nodeName = &nodeNameGen[0]; } if (!shapeName) @@ -2481,8 +2487,13 @@ void ColladaConverter::syncOrAddConstraint (btTypedConstraint* constraint) const char* constraintName = NULL; if (!constraintName) { - // generate one - sprintf(&namebuf[0], "BulletUnnamedConstraint-%d", random_node_name_key); + // generate one, and repeat until we have a unique name + do + { + sprintf(&namebuf[0], "BulletUnnamedConstraint-%d", random_node_name_key++); + } + while (findNode(&namebuf[0])); + constraintName = &namebuf[0]; }