From a22a6e9a5fbf9458c02631af735e5833853bafe3 Mon Sep 17 00:00:00 2001 From: ZhouYanCong <1169480185@qq.com> Date: Sun, 25 May 2025 15:29:32 +0800 Subject: [PATCH 1/2] fix: G6-#7149 --- src/graph.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/graph.ts b/src/graph.ts index 78a9dfd..aae61f8 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.target != newSource && 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 != newTarget && 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; From 89af6df37f9ac7e71347afaab4adca51e0a0f02a Mon Sep 17 00:00:00 2001 From: ZhouYanCong <1169480185@qq.com> Date: Sun, 25 May 2025 20:36:31 +0800 Subject: [PATCH 2/2] fix: G6-#7149 - simplify condition --- src/graph.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/graph.ts b/src/graph.ts index aae61f8..1ceb599 100644 --- a/src/graph.ts +++ b/src/graph.ts @@ -659,7 +659,7 @@ export class Graph< const oldSource = edge.source; const newSource = source; this.outEdgesMap.get(oldSource)!.delete(edge); - if (edge.target != newSource && edge.source != edge.target) { + if (edge.source != edge.target) { this.bothEdgesMap.get(oldSource)!.delete(edge); } this.outEdgesMap.get(newSource)!.add(edge); @@ -686,7 +686,7 @@ export class Graph< const oldTarget = edge.target; const newTarget = target; this.inEdgesMap.get(oldTarget)!.delete(edge); - if (edge.source != newTarget && edge.source != edge.target) { + if (edge.source != edge.target) { this.bothEdgesMap.get(oldTarget)!.delete(edge); } this.inEdgesMap.get(newTarget)!.add(edge);