]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Retrieve non-const pointer to std::string data without casting
authorJoel Rosdahl <joel@rosdahl.net>
Tue, 4 Aug 2020 14:32:14 +0000 (16:32 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Tue, 4 Aug 2020 14:32:14 +0000 (16:32 +0200)
src/TemporaryFile.cpp
src/Util.cpp
src/ccache.cpp

index 803ad9e8b2e3b70034ea81d67e39e31699326fc7..88814fa995cee3c00c6fe7ce501b642425059701 100644 (file)
@@ -84,6 +84,6 @@ TemporaryFile::initialize(string_view path_prefix)
 {
   path = std::string(path_prefix);
   path += ".XXXXXX";
-  fd = Fd(mkstemp(const_cast<char*>(path.data()))); // cast needed before C++17
+  fd = Fd(mkstemp(&path[0]));
   return bool(fd);
 }
index eafab5eabe69b7c6039998b870a20bae7347c37e..03c38508b214a00e7e88ac999bbd971b21ae8a42 100644 (file)
@@ -1031,8 +1031,7 @@ read_file(const std::string& path, size_t size_hint)
       result.resize(2 * result.size());
     }
     const size_t max_read = result.size() - pos;
-    char* data = const_cast<char*>(result.data()); // cast needed before C++17
-    ret = read(*fd, data + pos, max_read);
+    ret = read(*fd, &result[pos], max_read);
     if (ret == 0 || (ret == -1 && errno != EINTR)) {
       break;
     }
index 7dad6badef3071c5fc428d22bc98ad30f1fcfab4..f501d8c0e42e34638990686dcb3a1789c46a5e6c 100644 (file)
@@ -413,9 +413,9 @@ process_preprocessed_file(Context& ctx,
   }
 
   // Bytes between p and q are pending to be hashed.
-  const char* p = data.data();
-  char* q = const_cast<char*>(data.data()); // cast needed before C++17
-  const char* end = data.c_str() + data.length();
+  const char* p = &data[0];
+  char* q = &data[0];
+  const char* end = p + data.length();
 
   // There must be at least 7 characters (# 1 "x") left to potentially find an
   // include file path.