aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/trace-event-parse.c25
-rw-r--r--tools/perf/util/trace-event-read.c2
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