]> git.proxmox.com Git - mirror_frr.git/blobdiff - lib/graph.c
Merge pull request #13649 from donaldsharp/unlock_the_node_or_else
[mirror_frr.git] / lib / graph.c
index a9e35b46ff3339315854af4b98eb79d35b15199f..e6c2386d7537ed51356b66a2e38ea8f01edf2fb2 100644 (file)
@@ -1,33 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
 /*
  * Graph data structure.
  *
  * --
  * Copyright (C) 2016 Cumulus Networks, Inc.
- *
- * This file is part of GNU Zebra.
- *
- * GNU Zebra is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2, or (at your option) any
- * later version.
- *
- * GNU Zebra is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; see the file COPYING; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #include <zebra.h>
 #include "graph.h"
 #include "memory.h"
 #include "buffer.h"
 
-DEFINE_MTYPE_STATIC(LIB, GRAPH, "Graph")
-DEFINE_MTYPE_STATIC(LIB, GRAPH_NODE, "Graph Node")
-struct graph *graph_new()
+DEFINE_MTYPE_STATIC(LIB, GRAPH, "Graph");
+DEFINE_MTYPE_STATIC(LIB, GRAPH_NODE, "Graph Node");
+struct graph *graph_new(void)
 {
        struct graph *graph = XCALLOC(MTYPE_GRAPH, sizeof(struct graph));
        graph->nodes = vector_init(VECTOR_MIN_SIZE);
@@ -60,7 +45,7 @@ struct graph_node *graph_new_node(struct graph *graph, void *data,
        return node;
 }
 
-static void vector_remove(vector v, unsigned int ix)
+static void graph_vector_remove(vector v, unsigned int ix)
 {
        if (ix >= v->active)
                return;
@@ -69,7 +54,7 @@ static void vector_remove(vector v, unsigned int ix)
         * and v->active is > ix. */
        v->active--;
        /* if ix == v->active--, we set the item to itself, then to NULL...
-        * still correct, no check neccessary. */
+        * still correct, no check necessary. */
        v->index[ix] = v->index[v->active];
        v->index[v->active] = NULL;
 }
@@ -105,7 +90,7 @@ void graph_delete_node(struct graph *graph, struct graph_node *node)
        // remove node from graph->nodes
        for (unsigned int i = vector_active(graph->nodes); i--; /**/)
                if (vector_slot(graph->nodes, i) == node) {
-                       vector_remove(graph->nodes, i);
+                       graph_vector_remove(graph->nodes, i);
                        break;
                }
 
@@ -126,13 +111,13 @@ void graph_remove_edge(struct graph_node *from, struct graph_node *to)
        // remove from from to->from
        for (unsigned int i = vector_active(to->from); i--; /**/)
                if (vector_slot(to->from, i) == from) {
-                       vector_remove(to->from, i);
+                       graph_vector_remove(to->from, i);
                        break;
                }
        // remove to from from->to
        for (unsigned int i = vector_active(from->to); i--; /**/)
                if (vector_slot(from->to, i) == to) {
-                       vector_remove(from->to, i);
+                       graph_vector_remove(from->to, i);
                        break;
                }
 }