+// 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);
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;
* 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;
}
// 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;
}
// 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;
}
}