From 75c6a57ec28ce3eb5a9da96a22a126d56b46eec1 Mon Sep 17 00:00:00 2001 From: florijan Date: Wed, 28 Feb 2018 16:28:08 +0100 Subject: [PATCH] Comment detach delete logic Reviewers: dgleich Reviewed By: dgleich Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1260 --- src/database/graph_db_accessor.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/database/graph_db_accessor.cpp b/src/database/graph_db_accessor.cpp index 5b27bc688..c697f6319 100644 --- a/src/database/graph_db_accessor.cpp +++ b/src/database/graph_db_accessor.cpp @@ -378,6 +378,9 @@ void GraphDbAccessor::DetachRemoveVertex(VertexAccessor &vertex_accessor) { // can occur. See discussion in the RemoveVertex method above. } vertex_accessor.SwitchNew(); + // Note that when we call RemoveEdge we must take care not to delete from the + // collection we are iterating over. This invalidates the iterator in a subtle + // way that does not fail in tests, but is NOT correct. for (auto edge_accessor : vertex_accessor.in()) RemoveEdge(edge_accessor, true, false); vertex_accessor.SwitchNew();