]> Git Repo - linux.git/blobdiff - tools/perf/builtin-script.c
powerpc/vdso64: Fix CLOCK_MONOTONIC inconsistencies across Y2038
[linux.git] / tools / perf / builtin-script.c
index 2d8cb1d1682c45210cd8fef5c8a0a646376229e9..53f78cf3113f9ed5fe4a9d9de42fdf2a3a0b9d6e 100644 (file)
@@ -3699,37 +3699,13 @@ int cmd_script(int argc, const char **argv)
        if (err < 0)
                goto out_delete;
 
-       script.ptime_range = perf_time__range_alloc(script.time_str,
-                                                   &script.range_size);
-       if (!script.ptime_range) {
-               err = -ENOMEM;
-               goto out_delete;
-       }
-
-       /* needs to be parsed after looking up reference time */
-       if (perf_time__parse_str(script.ptime_range, script.time_str) != 0) {
-               if (session->evlist->first_sample_time == 0 &&
-                   session->evlist->last_sample_time == 0) {
-                       pr_err("HINT: no first/last sample time found in perf data.\n"
-                              "Please use latest perf binary to execute 'perf record'\n"
-                              "(if '--buildid-all' is enabled, please set '--timestamp-boundary').\n");
-                       err = -EINVAL;
-                       goto out_delete;
-               }
-
-               script.range_num = perf_time__percent_parse_str(
-                                       script.ptime_range, script.range_size,
-                                       script.time_str,
-                                       session->evlist->first_sample_time,
-                                       session->evlist->last_sample_time);
-
-               if (script.range_num < 0) {
-                       pr_err("Invalid time string\n");
-                       err = -EINVAL;
+       if (script.time_str) {
+               err = perf_time__parse_for_ranges(script.time_str, session,
+                                                 &script.ptime_range,
+                                                 &script.range_size,
+                                                 &script.range_num);
+               if (err < 0)
                        goto out_delete;
-               }
-       } else {
-               script.range_num = 1;
        }
 
        err = __cmd_script(&script);
@@ -3737,7 +3713,8 @@ int cmd_script(int argc, const char **argv)
        flush_scripting();
 
 out_delete:
-       zfree(&script.ptime_range);
+       if (script.ptime_range)
+               zfree(&script.ptime_range);
 
        perf_evlist__free_stats(session->evlist);
        perf_session__delete(session);
This page took 0.032963 seconds and 4 git commands to generate.