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 {
155
155
156
156
// remove all edges where dest is our plugin prepared to delete
157
157
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 ))
158
161
for i := range v .edges {
159
162
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
161
166
}
167
+ newEdges = append (newEdges , v .edges [i ])
162
168
}
169
+ v .edges = newEdges
163
170
}
164
171
165
172
for i := range g .topologicalOrder {
You can’t perform that action at this time.
0 commit comments