Replaced unsafe c string usage with std::string
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
*/
|
||||
|
||||
#include <osgDB/FileUtils>
|
||||
#include <osgDB/FileNameUtils>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
@@ -78,7 +79,7 @@ void trpgwArchive::Init(char *inDir,char *inFile,trpg2dPoint &sw, trpg2dPoint &n
|
||||
majorVersion = majorVer;
|
||||
minorVersion = minorVer;
|
||||
fp = NULL;
|
||||
strcpy(dir,inDir);
|
||||
osgDB::stringcopyfixedsize(dir,inDir);
|
||||
cpuNess = trpg_cpu_byte_order();
|
||||
tileFile = NULL;
|
||||
tileFileCount = 0;
|
||||
@@ -288,19 +289,17 @@ bool trpgwArchive::isValid() const
|
||||
{
|
||||
if (!fp)
|
||||
{
|
||||
strcpy(errMess, "File object do not exist");
|
||||
errMess.assign("File object do not exist");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *trpgwArchive::getErrMess() const
|
||||
const char* trpgwArchive::getErrMess() const
|
||||
{
|
||||
if(errMess[0] == '\0')
|
||||
return 0;
|
||||
else
|
||||
return &errMess[0];
|
||||
if(errMess.empty()) return 0;
|
||||
else return errMess.c_str();
|
||||
}
|
||||
|
||||
// Set the maximum advised size for a tile file
|
||||
@@ -460,7 +459,7 @@ bool trpgwArchive::CheckpointHeader()
|
||||
if (!header.isValid())
|
||||
{
|
||||
if(header.getErrMess())
|
||||
strcpy(errMess, header.getErrMess());
|
||||
errMess.assign(header.getErrMess());
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -590,11 +589,11 @@ bool trpgwArchive::CheckpointHeader()
|
||||
if(!header.GetIsMaster()||texTable.isValid()) {
|
||||
if(!texTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess, "Error writing texture table");
|
||||
errMess.assign("Error writing texture table");
|
||||
if(texTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, texTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(texTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -603,11 +602,11 @@ bool trpgwArchive::CheckpointHeader()
|
||||
if(!header.GetIsMaster()) {
|
||||
if (!matTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess, "Error writing material table");
|
||||
errMess.assign("Error writing material table");
|
||||
if(matTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, matTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(matTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -615,11 +614,11 @@ bool trpgwArchive::CheckpointHeader()
|
||||
|
||||
if(!modelTable.Write(buf) )
|
||||
{
|
||||
strcpy(errMess, "Error writing model table");
|
||||
errMess.assign("Error writing model table");
|
||||
if(modelTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, modelTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(modelTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -627,62 +626,62 @@ bool trpgwArchive::CheckpointHeader()
|
||||
//always write the tile table, even if we are a master
|
||||
if(!tileTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess, "Error writing tile table");
|
||||
errMess.assign("Error writing tile table");
|
||||
if(tileTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, tileTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(tileTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(!header.GetIsMaster()) {
|
||||
if(!lightTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess, "Error writing light table");
|
||||
errMess.assign("Error writing light table");
|
||||
if(lightTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, lightTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(lightTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if(!rangeTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess, "Error writing range table");
|
||||
errMess.assign("Error writing range table");
|
||||
if(rangeTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, rangeTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(rangeTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!textStyleTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess,"Error writing text style table");
|
||||
errMess.assign("Error writing text style table");
|
||||
if (textStyleTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, textStyleTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(textStyleTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!supportStyleTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess,"Error writing support style table");
|
||||
errMess.assign("Error writing support style table");
|
||||
if (supportStyleTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, supportStyleTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(supportStyleTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (!labelPropertyTable.Write(buf))
|
||||
{
|
||||
strcpy(errMess,"Error writing label property table");
|
||||
errMess.assign("Error writing label property table");
|
||||
if (labelPropertyTable.getErrMess())
|
||||
{
|
||||
strcat(errMess, ": ");
|
||||
strcat(errMess, labelPropertyTable.getErrMess());
|
||||
errMess.append(": ");
|
||||
errMess.append(labelPropertyTable.getErrMess());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -696,7 +695,7 @@ bool trpgwArchive::CheckpointHeader()
|
||||
magic = trpg_byteswap_int(magic);
|
||||
if (fwrite(&magic,sizeof(int32),1,fp) != 1)
|
||||
{
|
||||
strcpy(errMess, "Could not write the magic number");
|
||||
errMess.assign("Could not write the magic number");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -707,7 +706,7 @@ bool trpgwArchive::CheckpointHeader()
|
||||
headerSize = trpg_byteswap_int(headerSize);
|
||||
if (fwrite(&headerSize,1,sizeof(int32),fp) != sizeof(int32))
|
||||
{
|
||||
strcpy(errMess, "Could not write the header size");
|
||||
errMess.assign("Could not write the header size");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -716,7 +715,7 @@ bool trpgwArchive::CheckpointHeader()
|
||||
|
||||
if (WriteHeaderData(data,headLen,fp) != headLen)
|
||||
{
|
||||
strcpy(errMess, "Could not write the buffer");
|
||||
errMess.assign("Could not write the buffer");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1381,7 +1380,7 @@ trpgwImageHelper::trpgwImageHelper(trpgEndian inNess,char *inDir,trpgTexTable &i
|
||||
void trpgwImageHelper::Init(trpgEndian inNess,char *inDir,trpgTexTable &inTable,bool sepGeoTypical)
|
||||
{
|
||||
ness = inNess;
|
||||
strcpy(dir,inDir);
|
||||
osgDB::stringcopyfixedsize(dir,inDir);
|
||||
texTable = &inTable;
|
||||
texFile = NULL;
|
||||
geotypFile = NULL;
|
||||
|
||||
@@ -290,7 +290,7 @@ public:
|
||||
// virtual bool WriteModel(unsigned int,trpgMemWriteBuffer &);
|
||||
|
||||
bool isValid(void) const;
|
||||
const char *getErrMess() const;
|
||||
const char* getErrMess() const;
|
||||
char* getDir(void){return dir;};
|
||||
virtual trpgwImageHelper* GetNewWImageHelper(trpgEndian ness,char *dir,trpgTexTable &);
|
||||
virtual trpgwAppFile* GetNewWAppFile(trpgEndian inNess,const char *fileName,bool reuse=false);
|
||||
@@ -353,7 +353,7 @@ protected:
|
||||
|
||||
bool firstHeaderWrite;
|
||||
|
||||
mutable char errMess[512];
|
||||
mutable std::string errMess;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user