Commit f3cd4426 authored by Kitware Robot's avatar Kitware Robot Committed by Brad King

KWSys 2018-06-14 (2b0ca1d8)

Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit 2b0ca1d85d6e3fcf3b3fa375783c33524629f256 (master).

Upstream Shortlog
-----------------

Marian Klymov (3):
      0b9f51a1 Remove redundant calls to c_str
      361e54e3 Get rid of redundant string initialization
      61501133 SystemInformation: Avoid use of dangling pointers on Solaris
parent 3af8c771
......@@ -3495,7 +3495,7 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
// Chip Model Name
this->ChipID.ModelName =
this->ExtractValueFromCpuInfoFile(buffer, "model name").c_str();
this->ExtractValueFromCpuInfoFile(buffer, "model name");
// L1 Cache size
// Different architectures may show different names for the caches.
......@@ -4613,7 +4613,7 @@ std::string SystemInformationImplementation::ExtractValueFromSysCtl(
std::string SystemInformationImplementation::RunProcess(
std::vector<const char*> args)
{
std::string buffer = "";
std::string buffer;
// Run the application
kwsysProcess* gp = kwsysProcess_New();
......@@ -4668,11 +4668,7 @@ std::string SystemInformationImplementation::RunProcess(
std::string SystemInformationImplementation::ParseValueFromKStat(
const char* arguments)
{
std::vector<const char*> args;
args.clear();
args.push_back("kstat");
args.push_back("-p");
std::vector<std::string> args_string;
std::string command = arguments;
size_t start = std::string::npos;
size_t pos = command.find(' ', 0);
......@@ -4691,35 +4687,35 @@ std::string SystemInformationImplementation::ParseValueFromKStat(
}
if (!inQuotes) {
std::string arg = command.substr(start + 1, pos - start - 1);
args_string.push_back(command.substr(start + 1, pos - start - 1));
std::string& arg = args_string.back();
// Remove the quotes if any
size_t quotes = arg.find('"');
while (quotes != std::string::npos) {
arg.erase(quotes, 1);
quotes = arg.find('"');
}
args.push_back(arg.c_str());
arg.erase(std::remove(arg.begin(), arg.end(), '"'), arg.end());
start = pos;
}
pos = command.find(' ', pos + 1);
}
std::string lastArg = command.substr(start + 1, command.size() - start - 1);
args.push_back(lastArg.c_str());
args_string.push_back(command.substr(start + 1, command.size() - start - 1));
std::vector<const char*> args;
args.reserve(3 + args_string.size());
args.push_back("kstat");
args.push_back("-p");
for (size_t i = 0; i < args_string.size(); ++i) {
args.push_back(args_string[i].c_str());
}
args.push_back(KWSYS_NULLPTR);
std::string buffer = this->RunProcess(args);
std::string value = "";
std::string value;
for (size_t i = buffer.size() - 1; i > 0; i--) {
if (buffer[i] == ' ' || buffer[i] == '\t') {
break;
}
if (buffer[i] != '\n' && buffer[i] != '\r') {
std::string val = value;
value = buffer[i];
value += val;
value.insert(0u, 1, buffer[i]);
}
}
return value;
......
......@@ -686,7 +686,7 @@ public:
for (iterator i = this->begin(); i != this->end(); ++i) {
# if defined(_WIN32)
const std::string s = Encoding::ToNarrow(*i);
kwsysUnPutEnv(s.c_str());
kwsysUnPutEnv(s);
# else
kwsysUnPutEnv(*i);
# endif
......@@ -1973,7 +1973,7 @@ std::string SystemTools::ConvertToUnixOutputPath(const std::string& path)
}
// escape spaces and () in the path
if (ret.find_first_of(" ") != std::string::npos) {
std::string result = "";
std::string result;
char lastch = 1;
for (const char* ch = ret.c_str(); *ch != '\0'; ++ch) {
// if it is already escaped then don't try to escape it again
......@@ -3140,7 +3140,7 @@ void SystemTools::AddTranslationPath(const std::string& a,
void SystemTools::AddKeepPath(const std::string& dir)
{
std::string cdir;
Realpath(SystemTools::CollapseFullPath(dir).c_str(), cdir);
Realpath(SystemTools::CollapseFullPath(dir), cdir);
SystemTools::AddTranslationPath(cdir, dir);
}
......
......@@ -77,7 +77,7 @@ int testCommandLineArguments(int argc, char* argv[])
int some_int_variable = 10;
double some_double_variable = 10.10;
char* some_string_variable = KWSYS_NULLPTR;
std::string some_stl_string_variable = "";
std::string some_stl_string_variable;
bool some_bool_variable = false;
bool some_bool_variable1 = false;
bool bool_arg1 = false;
......
......@@ -206,7 +206,7 @@ static bool CheckFileOperations()
res = false;
}
if (!kwsys::SystemTools::Touch(testNewFile.c_str(), true)) {
if (!kwsys::SystemTools::Touch(testNewFile, true)) {
std::cerr << "Problem with Touch for: " << testNewFile << std::endl;
res = false;
}
......@@ -415,7 +415,7 @@ static bool CheckFileOperations()
res = false;
}
kwsys::SystemTools::Touch(testNewFile.c_str(), true);
kwsys::SystemTools::Touch(testNewFile, true);
if (!kwsys::SystemTools::RemoveADirectory(testNewDir)) {
std::cerr << "Problem with RemoveADirectory for: " << testNewDir
<< std::endl;
......@@ -806,7 +806,7 @@ static bool CheckFind()
const std::string testFindFile(TEST_SYSTEMTOOLS_BINARY_DIR "/" +
testFindFileName);
if (!kwsys::SystemTools::Touch(testFindFile.c_str(), true)) {
if (!kwsys::SystemTools::Touch(testFindFile, true)) {
std::cerr << "Problem with Touch for: " << testFindFile << std::endl;
// abort here as the existence of the file only makes the test meaningful
return false;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment