zbd: Fix incorrect comments
[fio.git] / graph.c
diff --git a/graph.c b/graph.c
index 7a35736b7ab02a796f935f7dcd931a0feb096e72..7a174170c7562fe7b13b27506ba0b68709d3df00 100644 (file)
--- a/graph.c
+++ b/graph.c
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  */
 #include <string.h>
-#include <malloc.h>
+#include <stdlib.h>
 #include <math.h>
 #include <assert.h>
 #include <stdlib.h>
@@ -180,7 +180,7 @@ static double maxdouble(double a, double b)
 static double find_double_values(struct graph_label *l, double_comparator cmp)
 {
        struct flist_head *entry;
-       double answer, tmp;
+       double answer = 0.0, tmp;
        int first = 1;
 
        if (flist_empty(&l->value_list))
@@ -687,7 +687,7 @@ static void graph_value_drop(struct graph_label *l, struct graph_value *v)
         */
        while (!(v->flags & GV_F_ON_PRIO)) {
                assert(!flist_empty(&v->alias));
-               v = flist_entry(v->alias.next, struct graph_value, alias);
+               v = flist_first_entry(&v->alias, struct graph_value, alias);
        }
 
        prio_tree_remove(&l->prio_tree, &v->node);
@@ -698,7 +698,7 @@ static void graph_value_drop(struct graph_label *l, struct graph_value *v)
        while (!flist_empty(&v->alias)) {
                struct graph_value *a;
 
-               a = flist_entry(v->alias.next, struct graph_value, alias);
+               a = flist_first_entry(&v->alias, struct graph_value, alias);
                flist_del_init(&a->alias);
 
                __graph_value_drop(l, a);
@@ -773,7 +773,7 @@ static void graph_label_add_value(struct graph_label *i, void *value,
                        to_drop = 2;
 
                while (to_drop-- && !flist_empty(&i->value_list)) {
-                       x = flist_entry(i->value_list.next, struct graph_value, list);
+                       x = flist_first_entry(&i->value_list, struct graph_value, list);
                        graph_value_drop(i, x);
 
                        /*
@@ -836,7 +836,7 @@ static void graph_free_values(struct graph_label *l)
        struct graph_value *i;
 
        while (!flist_empty(&l->value_list)) {
-               i = flist_entry(l->value_list.next, struct graph_value, list);
+               i = flist_first_entry(&l->value_list, struct graph_value, list);
                graph_value_drop(l, i);
        }
 }
@@ -846,13 +846,24 @@ static void graph_free_labels(struct graph *g)
        struct graph_label *i;
 
        while (!flist_empty(&g->label_list)) {
-               i = flist_entry(g->label_list.next, struct graph_label, list);
+               i = flist_first_entry(&g->label_list, struct graph_label, list);
                flist_del(&i->list);
                graph_free_values(i);
                free(i);
        }
 }
 
+void graph_clear_values(struct graph *g)
+{
+       struct flist_head *node;
+       struct graph_label *i;
+
+       flist_for_each(node, &g->label_list) {
+               i = flist_entry(node, struct graph_label, list);
+               graph_free_values(i);
+       }
+}
+
 void graph_set_color(struct graph *gr, graph_label_t label, double red,
                     double green, double blue)
 {
@@ -999,7 +1010,7 @@ const char *graph_find_tooltip(struct graph *g, int ix, int iy)
                                        }
                                }
                                if (!flist_empty(&v->alias))
-                                       v = flist_entry(v->alias.next, struct graph_value, alias);
+                                       v = flist_first_entry(&v->alias, struct graph_value, alias);
                        } while (v != rootv);
                } while ((n = prio_tree_next(&iter)) != NULL);