File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed
Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -155,11 +155,18 @@ func (g *Graph) Remove(plugin any) []*Vertex {
155155
156156 // remove all edges where dest is our plugin prepared to delete
157157 for _ , v := range g .vertices {
158+ // since we are deleting while iterating, we need to create a new slice
159+ // to prevent index out of range or similar errors
160+ newEdges := make ([]* edge , 0 , len (v .edges ))
158161 for i := range v .edges {
159162 if v .edges [i ].dest == plugin {
160- v .edges = slices .Delete (v .edges , i , i + 1 )
163+ // we found an edge which is pointing to our plugin,
164+ // we need to remove it for the graph
165+ continue
161166 }
167+ newEdges = append (newEdges , v .edges [i ])
162168 }
169+ v .edges = newEdges
163170 }
164171
165172 for i := range g .topologicalOrder {
You can’t perform that action at this time.
0 commit comments