aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-script.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-script.c')
-rw-r--r--tools/perf/builtin-script.c39
1 files changed, 8 insertions, 31 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 2d8cb1d1682c..53f78cf3113f 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -3699,37 +3699,13 @@ int cmd_script(int argc, const char **argv)
3699 if (err < 0) 3699 if (err < 0)
3700 goto out_delete; 3700 goto out_delete;
3701 3701
3702 script.ptime_range = perf_time__range_alloc(script.time_str, 3702 if (script.time_str) {
3703 &script.range_size); 3703 err = perf_time__parse_for_ranges(script.time_str, session,
3704 if (!script.ptime_range) { 3704 &script.ptime_range,
3705 err = -ENOMEM; 3705 &script.range_size,
3706 goto out_delete; 3706 &script.range_num);
3707 } 3707 if (err < 0)
3708
3709 /* needs to be parsed after looking up reference time */
3710 if (perf_time__parse_str(script.ptime_range, script.time_str) != 0) {
3711 if (session->evlist->first_sample_time == 0 &&
3712 session->evlist->last_sample_time == 0) {
3713 pr_err("HINT: no first/last sample time found in perf data.\n"
3714 "Please use latest perf binary to execute 'perf record'\n"
3715 "(if '--buildid-all' is enabled, please set '--timestamp-boundary').\n");
3716 err = -EINVAL;
3717 goto out_delete;
3718 }
3719
3720 script.range_num = perf_time__percent_parse_str(
3721 script.ptime_range, script.range_size,
3722 script.time_str,
3723 session->evlist->first_sample_time,
3724 session->evlist->last_sample_time);
3725
3726 if (script.range_num < 0) {
3727 pr_err("Invalid time string\n");
3728 err = -EINVAL;
3729 goto out_delete; 3708 goto out_delete;
3730 }
3731 } else {
3732 script.range_num = 1;
3733 } 3709 }
3734 3710
3735 err = __cmd_script(&script); 3711 err = __cmd_script(&script);
@@ -3737,7 +3713,8 @@ int cmd_script(int argc, const char **argv)
3737 flush_scripting(); 3713 flush_scripting();
3738 3714
3739out_delete: 3715out_delete:
3740 zfree(&script.ptime_range); 3716 if (script.ptime_range)
3717 zfree(&script.ptime_range);
3741 3718
3742 perf_evlist__free_stats(session->evlist); 3719 perf_evlist__free_stats(session->evlist);
3743 perf_session__delete(session); 3720 perf_session__delete(session);