From 6f21b59b756edb83c0d33972aed23a110329106c Mon Sep 17 00:00:00 2001 From: jsteemann Date: Fri, 29 Apr 2016 16:45:12 +0200 Subject: [PATCH] fixed undefined behavior --- arangod/Aql/QueryCache.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arangod/Aql/QueryCache.cpp b/arangod/Aql/QueryCache.cpp index f7b1a2a491..e54cfa6c70 100644 --- a/arangod/Aql/QueryCache.cpp +++ b/arangod/Aql/QueryCache.cpp @@ -210,9 +210,10 @@ void QueryCacheDatabaseEntry::store (uint64_t hash, // remove previous entry auto it = _entriesByHash.find(hash); TRI_ASSERT(it != _entriesByHash.end()); - unlink((*it).second); + auto previous = (*it).second; + unlink(previous); _entriesByHash.erase(it); - tryDelete((*it).second); + tryDelete(previous); // and insert again _entriesByHash.emplace(hash, entry); @@ -247,9 +248,10 @@ void QueryCacheDatabaseEntry::store (uint64_t hash, // finally remove entry itself from hash table auto it = _entriesByHash.find(hash); TRI_ASSERT(it != _entriesByHash.end()); + auto previous = (*it).second; _entriesByHash.erase(it); - unlink((*it).second); - tryDelete((*it).second); + unlink(previous); + tryDelete(previous); throw; }