diff options
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/util/trace-event-parse.c | 25 | ||||
| -rw-r--r-- | tools/perf/util/trace-event-read.c | 2 |
2 files changed, 16 insertions, 11 deletions
diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c index 02f97f5dd588..32e558a65af3 100644 --- a/tools/perf/util/trace-event-parse.c +++ b/tools/perf/util/trace-event-parse.c | |||
| @@ -37,10 +37,11 @@ static int get_common_field(struct scripting_context *context, | |||
| 37 | struct tep_format_field *field; | 37 | struct tep_format_field *field; |
| 38 | 38 | ||
| 39 | if (!*size) { | 39 | if (!*size) { |
| 40 | if (!pevent->events) | 40 | |
| 41 | event = tep_get_first_event(pevent); | ||
| 42 | if (!event) | ||
| 41 | return 0; | 43 | return 0; |
| 42 | 44 | ||
| 43 | event = pevent->events[0]; | ||
| 44 | field = tep_find_common_field(event, type); | 45 | field = tep_find_common_field(event, type); |
| 45 | if (!field) | 46 | if (!field) |
| 46 | return 0; | 47 | return 0; |
| @@ -193,25 +194,29 @@ struct tep_event_format *trace_find_next_event(struct tep_handle *pevent, | |||
| 193 | struct tep_event_format *event) | 194 | struct tep_event_format *event) |
| 194 | { | 195 | { |
| 195 | static int idx; | 196 | static int idx; |
| 197 | int events_count; | ||
| 198 | struct tep_event_format *all_events; | ||
| 196 | 199 | ||
| 197 | if (!pevent || !pevent->events) | 200 | all_events = tep_get_first_event(pevent); |
| 201 | events_count = tep_get_events_count(pevent); | ||
| 202 | if (!pevent || !all_events || events_count < 1) | ||
| 198 | return NULL; | 203 | return NULL; |
| 199 | 204 | ||
| 200 | if (!event) { | 205 | if (!event) { |
| 201 | idx = 0; | 206 | idx = 0; |
| 202 | return pevent->events[0]; | 207 | return all_events; |
| 203 | } | 208 | } |
| 204 | 209 | ||
| 205 | if (idx < pevent->nr_events && event == pevent->events[idx]) { | 210 | if (idx < events_count && event == (all_events + idx)) { |
| 206 | idx++; | 211 | idx++; |
| 207 | if (idx == pevent->nr_events) | 212 | if (idx == events_count) |
| 208 | return NULL; | 213 | return NULL; |
| 209 | return pevent->events[idx]; | 214 | return (all_events + idx); |
| 210 | } | 215 | } |
| 211 | 216 | ||
| 212 | for (idx = 1; idx < pevent->nr_events; idx++) { | 217 | for (idx = 1; idx < events_count; idx++) { |
| 213 | if (event == pevent->events[idx - 1]) | 218 | if (event == (all_events + (idx - 1))) |
| 214 | return pevent->events[idx]; | 219 | return (all_events + idx); |
| 215 | } | 220 | } |
| 216 | return NULL; | 221 | return NULL; |
| 217 | } | 222 | } |
diff --git a/tools/perf/util/trace-event-read.c b/tools/perf/util/trace-event-read.c index add8441de579..76f12c705ef9 100644 --- a/tools/perf/util/trace-event-read.c +++ b/tools/perf/util/trace-event-read.c | |||
| @@ -241,7 +241,7 @@ static int read_header_files(struct tep_handle *pevent) | |||
| 241 | * The commit field in the page is of type long, | 241 | * The commit field in the page is of type long, |
| 242 | * use that instead, since it represents the kernel. | 242 | * use that instead, since it represents the kernel. |
| 243 | */ | 243 | */ |
| 244 | tep_set_long_size(pevent, pevent->header_page_size_size); | 244 | tep_set_long_size(pevent, tep_get_header_page_size(pevent)); |
| 245 | } | 245 | } |
| 246 | free(header_page); | 246 | free(header_page); |
| 247 | 247 | ||
