diff options
author | Darren Hart <dvhltc@us.ibm.com> | 2010-01-04 20:24:40 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2010-01-04 23:40:01 -0500 |
commit | f18df1531e4da5685dd7441811c57ba96af0c055 (patch) | |
tree | 2242961f5858ec93e40da1f14c8d1fae406b1f70 | |
parent | 92dc18ac5f87593464b997070562e8305b1764fa (diff) |
trace-view: Add trace_view_store_get_row() convenience function
trace_view_get_row() encapsulates some of the bounds checking and
provides a Python friendly way to access the store rows.
Signed-off-by: Darren Hart <dvhltc@us.ibm.com>
LKML-Reference: <1262654682-20325-2-git-send-email-dvhltc@us.ibm.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | trace-view-store.c | 27 | ||||
-rw-r--r-- | trace-view-store.h | 2 |
2 files changed, 19 insertions, 10 deletions
diff --git a/trace-view-store.c b/trace-view-store.c index 253c61a..b167cc9 100644 --- a/trace-view-store.c +++ b/trace-view-store.c | |||
@@ -328,7 +328,7 @@ trace_view_store_get_iter (GtkTreeModel *tree_model, | |||
328 | { | 328 | { |
329 | TraceViewStore *trace_view_store; | 329 | TraceViewStore *trace_view_store; |
330 | TraceViewRecord *record; | 330 | TraceViewRecord *record; |
331 | gint *indices, n, depth, pos; | 331 | gint *indices, n, depth; |
332 | 332 | ||
333 | g_assert(TRACE_VIEW_IS_LIST(tree_model)); | 333 | g_assert(TRACE_VIEW_IS_LIST(tree_model)); |
334 | g_assert(path!=NULL); | 334 | g_assert(path!=NULL); |
@@ -343,17 +343,10 @@ trace_view_store_get_iter (GtkTreeModel *tree_model, | |||
343 | 343 | ||
344 | n = indices[0]; /* the n-th top level row */ | 344 | n = indices[0]; /* the n-th top level row */ |
345 | 345 | ||
346 | if ( n >= trace_view_store->num_rows || n < 0 ) | 346 | record = trace_view_store_get_row(trace_view_store, n); |
347 | if (!record) | ||
347 | return FALSE; | 348 | return FALSE; |
348 | 349 | ||
349 | record = trace_view_store->rows[trace_view_store->start_row + n]; | ||
350 | |||
351 | g_assert(record != NULL); | ||
352 | |||
353 | pos = record->pos - trace_view_store->start_row; | ||
354 | |||
355 | g_assert(pos == n); | ||
356 | |||
357 | /* We simply store a pointer to our custom record in the iter */ | 350 | /* We simply store a pointer to our custom record in the iter */ |
358 | iter->stamp = trace_view_store->stamp; | 351 | iter->stamp = trace_view_store->stamp; |
359 | iter->user_data = record; | 352 | iter->user_data = record; |
@@ -1081,6 +1074,20 @@ guint64 trace_view_store_get_offset_from_row(TraceViewStore *store, gint row) | |||
1081 | return store->rows[row]->offset; | 1074 | return store->rows[row]->offset; |
1082 | } | 1075 | } |
1083 | 1076 | ||
1077 | TraceViewRecord * | ||
1078 | trace_view_store_get_row(TraceViewStore *store, gint row) | ||
1079 | { | ||
1080 | TraceViewRecord *record; | ||
1081 | |||
1082 | if (row >= store->num_rows || row < 0) | ||
1083 | return NULL; | ||
1084 | |||
1085 | record = store->rows[store->start_row + row]; | ||
1086 | g_assert(record != NULL); | ||
1087 | g_assert((record->pos - store->start_row) == row); | ||
1088 | return record; | ||
1089 | } | ||
1090 | |||
1084 | gint get_next_pid(TraceViewStore *store, struct pevent *pevent, struct record *record) | 1091 | gint get_next_pid(TraceViewStore *store, struct pevent *pevent, struct record *record) |
1085 | { | 1092 | { |
1086 | unsigned long long val; | 1093 | unsigned long long val; |
diff --git a/trace-view-store.h b/trace-view-store.h index 974223b..53e0b37 100644 --- a/trace-view-store.h +++ b/trace-view-store.h | |||
@@ -123,6 +123,8 @@ guint64 trace_view_store_get_offset_from_row(TraceViewStore *store, gint row); | |||
123 | 123 | ||
124 | void trace_view_store_filter_tasks(TraceViewStore *store, struct filter_task *filter); | 124 | void trace_view_store_filter_tasks(TraceViewStore *store, struct filter_task *filter); |
125 | 125 | ||
126 | TraceViewRecord *trace_view_store_get_row(TraceViewStore *store, gint row); | ||
127 | |||
126 | /* TraceViewStoreClass: more boilerplate GObject stuff */ | 128 | /* TraceViewStoreClass: more boilerplate GObject stuff */ |
127 | 129 | ||
128 | struct _TraceViewStoreClass | 130 | struct _TraceViewStoreClass |