bugfix: returning pointer to local variable, char* to string in function definition

This commit is contained in:
maliakal_d 2018-02-07 10:14:52 +01:00
parent 618f6291cf
commit ecf1e9fac1
6 changed files with 11 additions and 11 deletions

View File

@ -374,7 +374,7 @@ void qTabAdvanced::SetOutputFile(){
//gets the clean absolute path //gets the clean absolute path
dirPath = dir.absoluteFilePath(dirPath); dirPath = dir.absoluteFilePath(dirPath);
dirPath = dir.cleanPath(dirPath); dirPath = dir.cleanPath(dirPath);
QString trimdir = QString(myDet->getSettingsFile()).section('/',0,-2,QString::SectionIncludeLeadingSep); QString trimdir = QString::fromStdString(myDet->getSettingsFile()).section('/',0,-2,QString::SectionIncludeLeadingSep);
trimdir = dir.absoluteFilePath(trimdir); trimdir = dir.absoluteFilePath(trimdir);
trimdir = dir.cleanPath(trimdir); trimdir = dir.cleanPath(trimdir);
if(!dirPath.compare(trimdir)){ if(!dirPath.compare(trimdir)){

View File

@ -4067,7 +4067,7 @@ slsDetectorDefs::externalSignalFlag multiSlsDetector::setExternalSignalFlags(ext
const char * multiSlsDetector::getSettingsFile() { string multiSlsDetector::getSettingsFile() {
string s0="", s1="",s ; string s0="", s1="",s ;
@ -4088,9 +4088,9 @@ const char * multiSlsDetector::getSettingsFile() {
} }
} }
if (s1=="bad") if (s1=="bad")
return s0.c_str(); return s0;
else else
return s1.c_str(); return s1;
} }

View File

@ -505,7 +505,7 @@ class multiSlsDetector : public slsDetectorUtils {
int64_t getId(idMode mode, int imod=0); int64_t getId(idMode mode, int imod=0);
int digitalTest(digitalTestMode mode, int imod=0); int digitalTest(digitalTestMode mode, int imod=0);
int executeTrimming(trimMode mode, int par1, int par2, int imod=-1); int executeTrimming(trimMode mode, int par1, int par2, int imod=-1);
const char *getSettingsFile(); string getSettingsFile();
int decodeNMod(int i, int &idet, int &imod); int decodeNMod(int i, int &idet, int &imod);

View File

@ -524,13 +524,13 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
/** /**
returns currently the loaded trimfile/settingsfile name returns currently the loaded trimfile/settingsfile name
*/ */
const char *getSettingsFile(){\ string getSettingsFile(){\
string s(thisDetector->settingsFile); \ string s(thisDetector->settingsFile); \
if (s.length()>6) {\ if (s.length()>6) {\
if (s.substr(s.length()-6,3)==string(".sn") && s.substr(s.length()-3)!=string("xxx") ) \ if (s.substr(s.length()-6,3)==string(".sn") && s.substr(s.length()-3)!=string("xxx") ) \
return s.substr(0,s.length()-6).c_str(); \ return s.substr(0,s.length()-6); \
} \ } \
return thisDetector->settingsFile;\ return string(thisDetector->settingsFile);\
}; };

View File

@ -4508,8 +4508,8 @@ string slsDetectorCommand::cmdSettings(int narg, char *args[], int action) {
} else if (action==PUT_ACTION) { } else if (action==PUT_ACTION) {
myDet->loadSettingsFile(sval,-1); myDet->loadSettingsFile(sval,-1);
} }
}//cout<<"settingsfile:"<<myDet->getSettingsFile()<<endl; }
return string(myDet->getSettingsFile()); return myDet->getSettingsFile();
} else if (cmd=="trim") { } else if (cmd=="trim") {
if (action==GET_ACTION) if (action==GET_ACTION)
return string("cannot get!"); return string("cannot get!");

View File

@ -255,7 +255,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
/** /**
returns currently the loaded trimfile/settingsfile name returns currently the loaded trimfile/settingsfile name
*/ */
virtual const char *getSettingsFile()=0; virtual string getSettingsFile()=0;
/** /**