diff options
author | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2010-11-10 01:52:20 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2011-06-29 02:48:21 -0400 |
commit | d72f13abe5839bac88ac00506733b1afaf1ff82c (patch) | |
tree | 0c866d676c2ef25e1659db414f95437e14b933fe | |
parent | 4014a8c01b9d68a5d87fde95c835e067f1727cd6 (diff) |
Add callers lines
-rw-r--r-- | sysprof.c | 52 |
1 files changed, 29 insertions, 23 deletions
@@ -427,9 +427,18 @@ set_row (FooTreeStore *store, GtkTreeIter *iter, } static void +set_node (FooTreeStore *store, GtkTreeIter *iter, int size, ProfileDescendant *node) +{ + set_row (store, iter, + node->name, + node->self * 100 / (double)size, + node->cumulative * 100 / (double)(size)); +} + +static void add_node (FooTreeStore *store, int size, - GtkTreeIter *parent, + const GtkTreeIter *parent, ProfileDescendant *node) { GtkTreeIter iter; @@ -438,18 +447,9 @@ add_node (FooTreeStore *store, return; foo_tree_store_insert (store, &iter, (GtkTreeIter *)parent, 0); - - set_row (store, &iter, node->name, - 100 * (node->self)/(double)size, - 100 * (node->cumulative)/(double)size); - if (parent == NULL) - { - foo_tree_store_insert (store, &iter, &iter, 0); - - set_row (store, &iter, "<i>Descendants</i>", 1.0, 1.0); - } - + set_node (store, &iter, size, node); + add_node (store, size, parent, node->siblings); add_node (store, size, &iter, node->children); } @@ -457,14 +457,10 @@ add_node (FooTreeStore *store, static void fill_descendants_tree (Application *app) { - FooTreeStore *tree_store; + FooTreeStore *store; - tree_store = - foo_tree_store_new (4, - G_TYPE_DOUBLE, - G_TYPE_DOUBLE, - G_TYPE_STRING, - G_TYPE_POINTER); + store = foo_tree_store_new ( + 4, G_TYPE_DOUBLE, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_POINTER); if (app->profile) { @@ -477,19 +473,29 @@ fill_descendants_tree (Application *app) if (object->name) { + int size = profile_get_size (app->profile); + GtkTreeIter iter, iter2; ProfileDescendant *node = profile_create_descendants (app->profile, object->name); - add_node (tree_store, - profile_get_size (app->profile), NULL, node); + foo_tree_store_insert (store, &iter, NULL, 0); + set_node (store, &iter, size, node); + + foo_tree_store_insert (store, &iter2, &iter, 0); + set_row (store, &iter2, "<i>Descendants</i>", 2.0, 2.0); + add_node (store, size, &iter2, node->children); + + foo_tree_store_insert (store, &iter2, &iter, 0); + set_row (store, &iter2, "<i>Callers</i>", 1.0, 1.0); + } } } - tree_view_set_model_with_default_sort (app->descendants_view, GTK_TREE_MODEL (tree_store), + tree_view_set_model_with_default_sort (app->descendants_view, GTK_TREE_MODEL (store), DESCENDANTS_CUMULATIVE, GTK_SORT_DESCENDING); - g_object_unref (G_OBJECT (tree_store)); + g_object_unref (G_OBJECT (store)); gtk_tree_view_columns_autosize (app->descendants_view); } |