projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fio: Fix (unsigned) integer overflow issues
[fio.git]
/
graph.c
diff --git
a/graph.c
b/graph.c
index 040e344ffcf4072f810c19315e98cf96b440655e..c45954c7f79939b2e38cebacbc028d932076c234 100644
(file)
--- a/
graph.c
+++ b/
graph.c
@@
-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;
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))
int first = 1;
if (flist_empty(&l->value_list))
@@
-343,15
+343,15
@@
static void graph_draw_x_ticks(struct graph *g, cairo_t *cr,
continue;
/* Draw tick mark */
continue;
/* Draw tick mark */
- cairo_set_line_width(cr,
0.8
);
+ cairo_set_line_width(cr,
1.0
);
cairo_move_to(cr, tx, y2);
cairo_line_to(cr, tx, y2 + (y2 - y1) * 0.03);
cairo_stroke(cr);
/* draw grid lines */
cairo_save(cr);
cairo_move_to(cr, tx, y2);
cairo_line_to(cr, tx, y2 + (y2 - y1) * 0.03);
cairo_stroke(cr);
/* draw grid lines */
cairo_save(cr);
- cairo_set_dash(cr, dash, 2,
2.0
);
- cairo_set_line_width(cr, 0.
5
);
+ cairo_set_dash(cr, dash, 2,
0.66
);
+ cairo_set_line_width(cr, 0.
33
);
cairo_move_to(cr, tx, y1);
cairo_line_to(cr, tx, y2);
cairo_stroke(cr);
cairo_move_to(cr, tx, y1);
cairo_line_to(cr, tx, y2);
cairo_stroke(cr);
@@
-373,7
+373,7
@@
static double graph_draw_y_ticks(struct graph *g, cairo_t *cr,
struct tickmark *tm;
double ty;
int i, power_of_ten;
struct tickmark *tm;
double ty;
int i, power_of_ten;
- static double dash[] = {
2
.0, 2.0 };
+ static double dash[] = {
1
.0, 2.0 };
nticks = calc_tickmarks(miny, maxy, nticks, &tm, &power_of_ten,
g->y_axis_unit_change_callback == NULL, g->base_offset);
nticks = calc_tickmarks(miny, maxy, nticks, &tm, &power_of_ten,
g->y_axis_unit_change_callback == NULL, g->base_offset);
@@
-412,8
+412,8
@@
static double graph_draw_y_ticks(struct graph *g, cairo_t *cr,
/* draw grid lines */
cairo_save(cr);
/* draw grid lines */
cairo_save(cr);
- cairo_set_dash(cr, dash, 2,
2.0
);
- cairo_set_line_width(cr, 0.
5
);
+ cairo_set_dash(cr, dash, 2,
0.66
);
+ cairo_set_line_width(cr, 0.
33
);
cairo_move_to(cr, x1, ty);
cairo_line_to(cr, x2, ty);
cairo_stroke(cr);
cairo_move_to(cr, x1, ty);
cairo_line_to(cr, x2, ty);
cairo_stroke(cr);
@@
-586,6
+586,8
@@
void line_graph_draw(struct graph *g, cairo_t *cr)
goto skip_data;
cairo_set_line_width(cr, 1.5);
goto skip_data;
cairo_set_line_width(cr, 1.5);
+ cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND);
+
flist_for_each(lentry, &g->label_list) {
i = flist_entry(lentry, struct graph_label, list);
first = 1;
flist_for_each(lentry, &g->label_list) {
i = flist_entry(lentry, struct graph_label, list);
first = 1;
@@
-600,9
+602,8
@@
void line_graph_draw(struct graph *g, cairo_t *cr)
if (first) {
cairo_move_to(cr, tx, ty);
first = 0;
if (first) {
cairo_move_to(cr, tx, ty);
first = 0;
- } else
{
+ } else
cairo_line_to(cr, tx, ty);
cairo_line_to(cr, tx, ty);
- }
}
cairo_stroke(cr);
}
}
cairo_stroke(cr);
}
@@
-686,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));
*/
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);
}
prio_tree_remove(&l->prio_tree, &v->node);
@@
-697,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;
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);
flist_del_init(&a->alias);
__graph_value_drop(l, a);
@@
-772,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)) {
to_drop = 2;
while (to_drop-- && !flist_empty(&i->value_list)) {
- x = flist_
entry(i->value_list.nex
t, struct graph_value, list);
+ x = flist_
first_entry(&i->value_lis
t, struct graph_value, list);
graph_value_drop(i, x);
/*
graph_value_drop(i, x);
/*
@@
-835,7
+836,7
@@
static void graph_free_values(struct graph_label *l)
struct graph_value *i;
while (!flist_empty(&l->value_list)) {
struct graph_value *i;
while (!flist_empty(&l->value_list)) {
- i = flist_
entry(l->value_list.nex
t, struct graph_value, list);
+ i = flist_
first_entry(&l->value_lis
t, struct graph_value, list);
graph_value_drop(l, i);
}
}
graph_value_drop(l, i);
}
}
@@
-845,13
+846,24
@@
static void graph_free_labels(struct graph *g)
struct graph_label *i;
while (!flist_empty(&g->label_list)) {
struct graph_label *i;
while (!flist_empty(&g->label_list)) {
- i = flist_
entry(g->label_list.nex
t, struct graph_label, list);
+ i = flist_
first_entry(&g->label_lis
t, struct graph_label, list);
flist_del(&i->list);
graph_free_values(i);
free(i);
}
}
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)
{
void graph_set_color(struct graph *gr, graph_label_t label, double red,
double green, double blue)
{
@@
-998,7
+1010,7
@@
const char *graph_find_tooltip(struct graph *g, int ix, int iy)
}
}
if (!flist_empty(&v->alias))
}
}
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);
} while (v != rootv);
} while ((n = prio_tree_next(&iter)) != NULL);