diff options
author | Darren Hart <dvhltc@us.ibm.com> | 2010-01-05 00:33:01 -0500 |
---|---|---|
committer | Darren Hart <dvhltc@us.ibm.com> | 2010-01-05 01:01:26 -0500 |
commit | 5415361dc5ee7da15ac8434dd5853ae45c45e471 (patch) | |
tree | cd8d5aac3222c097180e1aeccf339d0dbb2d7ebf | |
parent | bc166bbe6c6179cbe879473a9d67c20245bbc36e (diff) |
trace-view: consolidate the trace-view-store row access
Rather than provide an accessor function for each field of the row
record in the trace-view-store, simply return the row record and allow
the caller to access the fields directly.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
-rw-r--r-- | kernel-shark.c | 10 | ||||
-rw-r--r-- | trace-view-store.c | 29 | ||||
-rw-r--r-- | trace-view-store.h | 4 | ||||
-rw-r--r-- | trace-view.c | 7 |
4 files changed, 15 insertions, 35 deletions
diff --git a/kernel-shark.c b/kernel-shark.c index fbc5a5f..a55fc8a 100644 --- a/kernel-shark.c +++ b/kernel-shark.c | |||
@@ -137,6 +137,7 @@ static void row_double_clicked(GtkTreeView *treeview, | |||
137 | gpointer data) | 137 | gpointer data) |
138 | { | 138 | { |
139 | struct shark_info *info = data; | 139 | struct shark_info *info = data; |
140 | TraceViewRecord *rec; | ||
140 | GtkTreeModel *model; | 141 | GtkTreeModel *model; |
141 | gchar *spath; | 142 | gchar *spath; |
142 | guint64 time; | 143 | guint64 time; |
@@ -151,7 +152,8 @@ static void row_double_clicked(GtkTreeView *treeview, | |||
151 | row = atoi(spath); | 152 | row = atoi(spath); |
152 | g_free(spath); | 153 | g_free(spath); |
153 | 154 | ||
154 | time = trace_view_store_get_time_from_row(TRACE_VIEW_STORE(model), row); | 155 | rec = trace_view_store_get_row(TRACE_VIEW_STORE(model), row); |
156 | time = rec->timestamp; | ||
155 | trace_graph_select_by_time(info->ginfo, time); | 157 | trace_graph_select_by_time(info->ginfo, time); |
156 | } | 158 | } |
157 | 159 | ||
@@ -220,7 +222,7 @@ do_tree_popup(GtkWidget *widget, GdkEventButton *event, gpointer data) | |||
220 | static GtkWidget *menu_filter_add_task; | 222 | static GtkWidget *menu_filter_add_task; |
221 | static GtkWidget *menu_filter_clear_tasks; | 223 | static GtkWidget *menu_filter_clear_tasks; |
222 | struct record *record; | 224 | struct record *record; |
223 | TraceViewStore *store; | 225 | TraceViewRecord *vrec; |
224 | GtkTreeSelection *selection; | 226 | GtkTreeSelection *selection; |
225 | GtkTreeModel *model; | 227 | GtkTreeModel *model; |
226 | GtkTreePath *path; | 228 | GtkTreePath *path; |
@@ -281,8 +283,8 @@ do_tree_popup(GtkWidget *widget, GdkEventButton *event, gpointer data) | |||
281 | g_free(spath); | 283 | g_free(spath); |
282 | 284 | ||
283 | model = gtk_tree_view_get_model(GTK_TREE_VIEW(info->treeview)); | 285 | model = gtk_tree_view_get_model(GTK_TREE_VIEW(info->treeview)); |
284 | store = TRACE_VIEW_STORE(model); | 286 | vrec = trace_view_store_get_row(TRACE_VIEW_STORE(model), row); |
285 | offset = trace_view_store_get_offset_from_row(store, row); | 287 | offset = vrec->offset; |
286 | 288 | ||
287 | record = tracecmd_read_at(info->handle, offset, &cpu); | 289 | record = tracecmd_read_at(info->handle, offset, &cpu); |
288 | 290 | ||
diff --git a/trace-view-store.c b/trace-view-store.c index 03664c8..be86662 100644 --- a/trace-view-store.c +++ b/trace-view-store.c | |||
@@ -1039,37 +1039,16 @@ gint trace_view_store_get_timestamp_page(TraceViewStore *store, guint64 ts) | |||
1039 | return rec->pos / store->rows_per_page + 1; | 1039 | return rec->pos / store->rows_per_page + 1; |
1040 | } | 1040 | } |
1041 | 1041 | ||
1042 | guint64 trace_view_store_get_time_from_row(TraceViewStore *store, gint row) | ||
1043 | { | ||
1044 | g_return_val_if_fail (TRACE_VIEW_IS_LIST (store), 0); | ||
1045 | |||
1046 | row += store->start_row; | ||
1047 | |||
1048 | g_return_val_if_fail (row >= 0 && row < store->visible_rows, 0); | ||
1049 | |||
1050 | return store->rows[row]->timestamp; | ||
1051 | } | ||
1052 | |||
1053 | guint64 trace_view_store_get_offset_from_row(TraceViewStore *store, gint row) | ||
1054 | { | ||
1055 | g_return_val_if_fail (TRACE_VIEW_IS_LIST (store), 0); | ||
1056 | |||
1057 | row += store->start_row; | ||
1058 | |||
1059 | g_return_val_if_fail (row >= 0 && row < store->visible_rows, 0); | ||
1060 | |||
1061 | return store->rows[row]->offset; | ||
1062 | } | ||
1063 | |||
1064 | TraceViewRecord * | 1042 | TraceViewRecord * |
1065 | trace_view_store_get_row(TraceViewStore *store, gint row) | 1043 | trace_view_store_get_row(TraceViewStore *store, gint row) |
1066 | { | 1044 | { |
1067 | TraceViewRecord *record; | 1045 | TraceViewRecord *record; |
1046 | g_return_val_if_fail(TRACE_VIEW_IS_LIST(store), NULL); | ||
1068 | 1047 | ||
1069 | if (row >= store->num_rows || row < 0) | 1048 | row += store->start_row; |
1070 | return NULL; | 1049 | g_return_val_if_fail(row >= store->start_row && row < store->visible_rows, NULL); |
1071 | 1050 | ||
1072 | record = store->rows[store->start_row + row]; | 1051 | record = store->rows[row]; |
1073 | g_assert(record != NULL); | 1052 | g_assert(record != NULL); |
1074 | g_assert((record->pos - store->start_row) == row); | 1053 | g_assert((record->pos - store->start_row) == row); |
1075 | return record; | 1054 | return record; |
diff --git a/trace-view-store.h b/trace-view-store.h index bfa19d9..08caf3f 100644 --- a/trace-view-store.h +++ b/trace-view-store.h | |||
@@ -117,10 +117,6 @@ gint trace_view_store_get_timestamp_page(TraceViewStore *store, guint64 ts); | |||
117 | 117 | ||
118 | gint trace_view_store_get_timestamp_visible_row(TraceViewStore *store, guint64 ts); | 118 | gint trace_view_store_get_timestamp_visible_row(TraceViewStore *store, guint64 ts); |
119 | 119 | ||
120 | guint64 trace_view_store_get_time_from_row(TraceViewStore *store, gint row); | ||
121 | |||
122 | guint64 trace_view_store_get_offset_from_row(TraceViewStore *store, gint row); | ||
123 | |||
124 | void trace_view_store_filter_tasks(TraceViewStore *store, struct filter_task *filter); | 120 | void trace_view_store_filter_tasks(TraceViewStore *store, struct filter_task *filter); |
125 | 121 | ||
126 | TraceViewRecord *trace_view_store_get_row(TraceViewStore *store, gint row); | 122 | TraceViewRecord *trace_view_store_get_row(TraceViewStore *store, gint row); |
diff --git a/trace-view.c b/trace-view.c index 3c023e5..899b3b3 100644 --- a/trace-view.c +++ b/trace-view.c | |||
@@ -271,6 +271,7 @@ void trace_view_make_selection_visible(GtkWidget *treeview) | |||
271 | void trace_view_update_task_filter(GtkWidget *treeview, struct filter_task *filter) | 271 | void trace_view_update_task_filter(GtkWidget *treeview, struct filter_task *filter) |
272 | { | 272 | { |
273 | GtkTreeView *tree = GTK_TREE_VIEW(treeview); | 273 | GtkTreeView *tree = GTK_TREE_VIEW(treeview); |
274 | TraceViewRecord *vrec; | ||
274 | GtkTreeModel *model; | 275 | GtkTreeModel *model; |
275 | guint64 time; | 276 | guint64 time; |
276 | gint row; | 277 | gint row; |
@@ -281,8 +282,10 @@ void trace_view_update_task_filter(GtkWidget *treeview, struct filter_task *filt | |||
281 | 282 | ||
282 | /* Keep track of the currently selected row */ | 283 | /* Keep track of the currently selected row */ |
283 | row = trace_view_get_selected_row(treeview); | 284 | row = trace_view_get_selected_row(treeview); |
284 | if (row >= 0) | 285 | if (row >= 0) { |
285 | time = trace_view_store_get_time_from_row(TRACE_VIEW_STORE(model), row); | 286 | vrec = trace_view_store_get_row(TRACE_VIEW_STORE(model), row); |
287 | time = vrec->timestamp; | ||
288 | } | ||
286 | 289 | ||
287 | g_object_ref(model); | 290 | g_object_ref(model); |
288 | gtk_tree_view_set_model(tree, NULL); | 291 | gtk_tree_view_set_model(tree, NULL); |