]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Use change_extension() and remove_extension()
authorThomas Otto <thomas.otto@pdv-fs.de>
Wed, 30 Oct 2019 15:39:37 +0000 (16:39 +0100)
committerThomas Otto <thomas.otto@pdv-fs.de>
Tue, 26 Nov 2019 13:45:21 +0000 (14:45 +0100)
Also remove obsolete legacy remove_extension() function.

src/ccache.cpp
src/ccache.hpp
src/legacy_util.cpp

index 8b5791d037e28e6d2e56230378f056b10c55ef54..d1f65808eeb431118e7e2083c2ef52b3fee551eb 100644 (file)
@@ -1825,11 +1825,10 @@ hash_common_info(struct args* args, struct hash* hash)
       dir = real_dir;
     }
     if (dir) {
-      std::string base_name(Util::base_name(output_obj));
-      char* p = remove_extension(base_name.c_str());
-      char* gcda_path = format("%s/%s.gcda", dir, p);
-      cc_log("Hashing coverage path %s", gcda_path);
-      free(p);
+      string_view base_name = Util::base_name(output_obj);
+      string_view p = Util::remove_extension(base_name);
+      std::string gcda_path = fmt::format("{}/{}.gcda", dir, p);
+      cc_log("Hashing coverage path %s", gcda_path.c_str());
       hash_delimiter(hash, "gcda");
       hash_string(hash, gcda_path);
       free(dir);
@@ -2074,14 +2073,12 @@ calculate_result_name(struct args* args, struct hash* hash, int direct_mode)
     if (!profile_dir) {
       profile_dir = get_cwd();
     }
-    char* base_name = remove_extension(output_obj);
-    char* gcda_name = format("%s/%s.gcda", profile_dir, base_name);
-    cc_log("Adding profile data %s to our hash", gcda_name);
+    string_view base_name = Util::remove_extension(output_obj);
+    std::string gcda_name = fmt::format("{}/{}.gcda", profile_dir, base_name);
+    cc_log("Adding profile data %s to our hash", gcda_name.c_str());
     // Add the gcda to our hash.
     hash_delimiter(hash, "-fprofile-use");
-    hash_file(hash, gcda_name);
-    free(base_name);
-    free(gcda_name);
+    hash_file(hash, gcda_name.c_str());
   }
 
   // Adding -arch to hash since cpp output is affected.
@@ -3355,9 +3352,7 @@ cc_process_args(struct args* args,
       goto out;
     }
 
-    char* base_name = remove_extension(output_obj);
-    output_dwo = format("%s.dwo", base_name);
-    free(base_name);
+    output_dwo = x_strdup(Util::change_extension(output_obj, ".dwo").c_str());
   }
 
   // Cope with -o /dev/null.
@@ -3425,12 +3420,11 @@ cc_process_args(struct args* args,
   // Add flags for dependency generation only to the preprocessor command line.
   if (generating_dependencies) {
     if (!dependency_filename_specified) {
-      char* base_name = remove_extension(output_obj);
-      char* default_depfile_name = format("%s.d", base_name);
-      free(base_name);
+      std::string default_depfile_name =
+        Util::change_extension(output_obj, ".d");
       args_add(dep_args, "-MF");
-      args_add(dep_args, default_depfile_name);
-      output_dep = make_relative_path(x_strdup(default_depfile_name));
+      args_add(dep_args, default_depfile_name.c_str());
+      output_dep = make_relative_path(x_strdup(default_depfile_name.c_str()));
     }
 
     if (!dependency_target_specified && !dependency_implicit_target_specified
@@ -3440,16 +3434,12 @@ cc_process_args(struct args* args,
     }
   }
   if (generating_coverage) {
-    char* base_name = remove_extension(output_obj);
-    char* default_covfile_name = format("%s.gcno", base_name);
-    free(base_name);
-    output_cov = make_relative_path(default_covfile_name);
+    std::string gcda_path = Util::change_extension(output_obj, ".gcno");
+    output_cov = make_relative_path(x_strdup(gcda_path.c_str()));
   }
   if (generating_stackusage) {
-    char* base_name = remove_extension(output_obj);
-    char* default_sufile_name = format("%s.su", base_name);
-    free(base_name);
-    output_su = make_relative_path(default_sufile_name);
+    std::string default_sufile_name = Util::change_extension(output_obj, ".su");
+    output_su = make_relative_path(x_strdup(default_sufile_name.c_str()));
   }
 
   *compiler_args = args_copy(common_args);
index ea8676ad428c70d35286835307416f98d9a174e5..fb3a78276f7227a2695d85d8f6dbf4485e6487ab 100644 (file)
@@ -178,7 +178,6 @@ void x_setenv(const char* name, const char* value);
 void x_unsetenv(const char* name);
 char* x_dirname(const char* path);
 const char* get_extension(const char* path);
-char* remove_extension(const char* path);
 char* format_human_readable_size(uint64_t size);
 char* format_parsable_size_with_suffix(uint64_t size);
 bool parse_size_with_suffix(const char* str, uint64_t* size);
index 3f87d6475cf204764e95a773ae1e5251cc067301..3e714423082f45aeb0bd728b908d2ec4c9e81386 100644 (file)
@@ -770,14 +770,6 @@ get_extension(const char* path)
   return &path[len];
 }
 
-// Return a string containing the given path without the filename extension.
-// Caller frees.
-char*
-remove_extension(const char* path)
-{
-  return x_strndup(path, strlen(path) - strlen(get_extension(path)));
-}
-
 // Format a size as a human-readable string. Caller frees.
 char*
 format_human_readable_size(uint64_t v)