diff --git a/src/graph.ts b/src/graph.ts index 78a9dfd..1ceb599 100644 --- a/src/graph.ts +++ b/src/graph.ts @@ -659,7 +659,9 @@ export class Graph< const oldSource = edge.source; const newSource = source; this.outEdgesMap.get(oldSource)!.delete(edge); - this.bothEdgesMap.get(oldSource)!.delete(edge); + if (edge.source != edge.target) { + this.bothEdgesMap.get(oldSource)!.delete(edge); + } this.outEdgesMap.get(newSource)!.add(edge); this.bothEdgesMap.get(newSource)!.add(edge); edge.source = source; @@ -684,7 +686,9 @@ export class Graph< const oldTarget = edge.target; const newTarget = target; this.inEdgesMap.get(oldTarget)!.delete(edge); - this.bothEdgesMap.get(oldTarget)!.delete(edge); + if (edge.source != edge.target) { + this.bothEdgesMap.get(oldTarget)!.delete(edge); + } this.inEdgesMap.get(newTarget)!.add(edge); this.bothEdgesMap.get(newTarget)!.add(edge); edge.target = target;