From 1346ce22b92d9d2f7a3c7d31fad2e2f33b6e5e87 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 8 May 2017 15:51:25 -0700 Subject: [PATCH] don't crash if imported entities make a reference to an unknown entity --- libraries/entities/src/EntityTree.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libraries/entities/src/EntityTree.cpp b/libraries/entities/src/EntityTree.cpp index a770ea0ec0..c6a270ffb5 100644 --- a/libraries/entities/src/EntityTree.cpp +++ b/libraries/entities/src/EntityTree.cpp @@ -1583,6 +1583,19 @@ QVector EntityTree::sendEntities(EntityEditPacketSender* packetSen }); packetSender->releaseQueuedMessages(); + // the values from map are used as the list of successfully "sent" entities. If some didn't actually make it, + // pull them out. Bogus entries could happen if part of the imported data makes some reference to an entity + // that isn't in the data being imported. + QHash::iterator i = map.begin(); + while (i != map.end()) { + EntityItemID newID = i.value(); + if (localTree->findEntityByEntityItemID(newID)) { + i++; + } else { + i = map.erase(i); + } + } + return map.values().toVector(); }