summaryrefslogtreecommitdiffstats
path: root/Source/cmComputeLinkInformation.cxx
diff options
context:
space:
mode:
authorRolf Eike Beer <eike@sf-mail.de>2020-03-21 11:51:46 (GMT)
committerRolf Eike Beer <eike@sf-mail.de>2020-03-23 21:41:44 (GMT)
commitef778d77e0795ecba8af55a6984ad5fa5f44377a (patch)
treef2256f9fac53cc2be8840bc69cf1f8feb32c17f6 /Source/cmComputeLinkInformation.cxx
parent77616f46817b6527c7e515de547625e554df21f9 (diff)
downloadCMake-ef778d77e0795ecba8af55a6984ad5fa5f44377a.zip
CMake-ef778d77e0795ecba8af55a6984ad5fa5f44377a.tar.gz
CMake-ef778d77e0795ecba8af55a6984ad5fa5f44377a.tar.bz2
replace std::string::substr() with operations that do not allocate memory
Modify the original string instead of creating a new copy with substr() when it is not used for anything else afterwards.
Diffstat (limited to 'Source/cmComputeLinkInformation.cxx')
-rw-r--r--Source/cmComputeLinkInformation.cxx12
1 files changed, 6 insertions, 6 deletions
diff --git a/Source/cmComputeLinkInformation.cxx b/Source/cmComputeLinkInformation.cxx
index aff9dd9..8d27699 100644
--- a/Source/cmComputeLinkInformation.cxx
+++ b/Source/cmComputeLinkInformation.cxx
@@ -1798,10 +1798,10 @@ void cmComputeLinkInformation::GetRPath(std::vector<std::string>& runtimeDirs,
if (use_build_rpath) {
std::string d = ri;
if (!rootPath.empty() && cmHasPrefix(d, rootPath)) {
- d = d.substr(rootPath.size());
+ d.erase(0, rootPath.size());
} else if (stagePath && *stagePath && cmHasPrefix(d, stagePath)) {
- std::string suffix = d.substr(strlen(stagePath));
- d = cmStrCat(installPrefix, '/', suffix);
+ d.erase(0, strlen(stagePath));
+ d = cmStrCat(installPrefix, '/', d);
cmSystemTools::ConvertToUnixSlashes(d);
} else if (use_relative_build_rpath) {
// If expansion of the $ORIGIN token is supported and permitted per
@@ -1829,10 +1829,10 @@ void cmComputeLinkInformation::GetRPath(std::vector<std::string>& runtimeDirs,
!cmSystemTools::IsSubDirectory(ri, topBinaryDir)) {
std::string d = ri;
if (!rootPath.empty() && cmHasPrefix(d, rootPath)) {
- d = d.substr(rootPath.size());
+ d.erase(0, rootPath.size());
} else if (stagePath && *stagePath && cmHasPrefix(d, stagePath)) {
- std::string suffix = d.substr(strlen(stagePath));
- d = cmStrCat(installPrefix, '/', suffix);
+ d.erase(0, strlen(stagePath));
+ d = cmStrCat(installPrefix, '/', d);
cmSystemTools::ConvertToUnixSlashes(d);
}
if (emitted.insert(d).second) {