aboutsummaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2013-08-24 22:56:29 +0100
committerNay <dnpd.dd@gmail.com>2013-08-24 22:57:22 +0100
commit12973de799dde8f89b9049964e26ab63a960520a (patch)
tree2f1d0c6346c71f1c9543aa9fb497af3d12053249 /src/tools
parent61016dcc66eaeef26dd21d3f5cf7323809a76080 (diff)
Core&Tools: Fix multiple issues found by a static code coverage tool
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/map_extractor/mpq_libmpq04.h1
-rw-r--r--src/tools/mmaps_generator/MapBuilder.cpp32
-rw-r--r--src/tools/mmaps_generator/PathCommon.h1
-rw-r--r--src/tools/vmap4_assembler/VMapAssembler.cpp5
-rw-r--r--src/tools/vmap4_extractor/gameobject_extract.cpp8
-rw-r--r--src/tools/vmap4_extractor/vmapexport.cpp8
-rw-r--r--src/tools/vmap4_extractor/wmo.cpp14
-rw-r--r--src/tools/vmap4_extractor/wmo.h1
8 files changed, 49 insertions, 21 deletions
diff --git a/src/tools/map_extractor/mpq_libmpq04.h b/src/tools/map_extractor/mpq_libmpq04.h
index 9f0163067c4..4691693d80d 100644
--- a/src/tools/map_extractor/mpq_libmpq04.h
+++ b/src/tools/map_extractor/mpq_libmpq04.h
@@ -18,6 +18,7 @@ public:
mpq_archive_s *mpq_a;
MPQArchive(const char* filename);
+ ~MPQArchive() { close(); }
void close();
void GetFileListTo(vector<string>& filelist) {
diff --git a/src/tools/mmaps_generator/MapBuilder.cpp b/src/tools/mmaps_generator/MapBuilder.cpp
index 06a764690ca..a8254eb5eaf 100644
--- a/src/tools/mmaps_generator/MapBuilder.cpp
+++ b/src/tools/mmaps_generator/MapBuilder.cpp
@@ -202,7 +202,10 @@ namespace MMAP
minX = INT_MIN;
minY = INT_MIN;
- float bmin[3], bmax[3], lmin[3], lmax[3];
+ float bmin[3] = { 0, 0, 0 };
+ float bmax[3] = { 0, 0, 0 };
+ float lmin[3] = { 0, 0, 0 };
+ float lmax[3] = { 0, 0, 0 };
MeshData meshData;
// make sure we process maps which don't have tiles
@@ -260,25 +263,45 @@ namespace MMAP
uint32 verticesCount, indicesCount;
if (fread(&verticesCount, sizeof(uint32), 1, file) != 1)
+ {
+ fclose(file);
return;
+ }
+
if (fread(&indicesCount, sizeof(uint32), 1, file) != 1)
+ {
+ fclose(file);
return;
+ }
float* verts = new float[verticesCount];
int* inds = new int[indicesCount];
if (fread(verts, sizeof(float), verticesCount, file) != verticesCount)
+ {
+ fclose(file);
+ delete[] verts;
+ delete[] inds;
return;
+ }
+
if (fread(inds, sizeof(int), indicesCount, file) != indicesCount)
+ {
+ fclose(file);
+ delete[] verts;
+ delete[] inds;
return;
+ }
MeshData data;
for (uint32 i = 0; i < verticesCount; ++i)
data.solidVerts.append(verts[i]);
+ delete[] verts;
for (uint32 i = 0; i < indicesCount; ++i)
data.solidTris.append(inds[i]);
+ delete[] inds;
TerrainBuilder::cleanVertices(data.solidVerts, data.solidTris);
// get bounds of current tile
@@ -659,6 +682,9 @@ namespace MMAP
if (!iv.polyMesh)
{
printf("%s alloc iv.polyMesh FIALED!\n", tileString);
+ delete[] pmmerge;
+ delete[] dmmerge;
+ delete[] tiles;
return;
}
rcMergePolyMeshes(m_rcContext, pmmerge, nmerge, *iv.polyMesh);
@@ -667,6 +693,9 @@ namespace MMAP
if (!iv.polyMeshDetail)
{
printf("%s alloc m_dmesh FIALED!\n", tileString);
+ delete[] pmmerge;
+ delete[] dmmerge;
+ delete[] tiles;
return;
}
rcMergePolyMeshDetails(m_rcContext, dmmerge, nmerge, *iv.polyMeshDetail);
@@ -674,7 +703,6 @@ namespace MMAP
// free things up
delete[] pmmerge;
delete[] dmmerge;
-
delete[] tiles;
// set polygons as walkable
diff --git a/src/tools/mmaps_generator/PathCommon.h b/src/tools/mmaps_generator/PathCommon.h
index 3e06ff58410..94a11e01730 100644
--- a/src/tools/mmaps_generator/PathCommon.h
+++ b/src/tools/mmaps_generator/PathCommon.h
@@ -114,7 +114,6 @@ namespace MMAP
const char *p = dirpath.c_str();
DIR * dirp = opendir(p);
struct dirent * dp;
- dirp = opendir(p);
while (dirp)
{
diff --git a/src/tools/vmap4_assembler/VMapAssembler.cpp b/src/tools/vmap4_assembler/VMapAssembler.cpp
index bb8e324bc75..4ee6f5fce3c 100644
--- a/src/tools/vmap4_assembler/VMapAssembler.cpp
+++ b/src/tools/vmap4_assembler/VMapAssembler.cpp
@@ -5,9 +5,8 @@
int main(int argc, char* argv[])
{
- if(argc != 3)
+ if (argc != 3)
{
- //printf("\nusage: %s <raw data dir> <vmap dest dir> [config file name]\n", argv[0]);
std::cout << "usage: " << argv[0] << " <raw data dir> <vmap dest dir>" << std::endl;
return 1;
}
@@ -19,7 +18,7 @@ int main(int argc, char* argv[])
VMAP::TileAssembler* ta = new VMAP::TileAssembler(src, dest);
- if(!ta->convertWorld2())
+ if (!ta->convertWorld2())
{
std::cout << "exit with errors" << std::endl;
delete ta;
diff --git a/src/tools/vmap4_extractor/gameobject_extract.cpp b/src/tools/vmap4_extractor/gameobject_extract.cpp
index 8a1f67cd2c2..30cedfe7987 100644
--- a/src/tools/vmap4_extractor/gameobject_extract.cpp
+++ b/src/tools/vmap4_extractor/gameobject_extract.cpp
@@ -49,7 +49,13 @@ void ExtractGameobjectModels()
basepath += "/";
std::string path;
- FILE * model_list = fopen((basepath + "temp_gameobject_models").c_str(), "wb");
+ std::string modelListPath = basepath + "temp_gameobject_models";
+ FILE* model_list = fopen(modelListPath.c_str(), "wb");
+ if (!model_list)
+ {
+ printf("Fatal error: Could not open file %s\n", modelListPath.c_str());
+ return;
+ }
for (DBCFile::Iterator it = dbc.begin(); it != dbc.end(); ++it)
{
diff --git a/src/tools/vmap4_extractor/vmapexport.cpp b/src/tools/vmap4_extractor/vmapexport.cpp
index 89e4b850dac..82270cfaa50 100644
--- a/src/tools/vmap4_extractor/vmapexport.cpp
+++ b/src/tools/vmap4_extractor/vmapexport.cpp
@@ -158,16 +158,16 @@ bool ExtractSingleWmo(std::string& fname)
return true;
int p = 0;
- //Select root wmo files
+ // Select root wmo files
char const* rchr = strrchr(plain_name, '_');
- if(rchr != NULL)
+ if (rchr != NULL)
{
char cpy[4];
- strncpy((char*)cpy, rchr, 4);
+ memcpy(cpy, rchr, 4);
for (int i = 0; i < 4; ++i)
{
int m = cpy[i];
- if(isdigit(m))
+ if (isdigit(m))
p++;
}
}
diff --git a/src/tools/vmap4_extractor/wmo.cpp b/src/tools/vmap4_extractor/wmo.cpp
index d7bd9ecd2f9..57161cb495a 100644
--- a/src/tools/vmap4_extractor/wmo.cpp
+++ b/src/tools/vmap4_extractor/wmo.cpp
@@ -136,14 +136,12 @@ bool WMORoot::ConvertToVMAPRootWmo(FILE* pOutfile)
return true;
}
-WMORoot::~WMORoot()
-{
-}
-
WMOGroup::WMOGroup(const std::string &filename) :
filename(filename), MOPY(0), MOVI(0), MoviEx(0), MOVT(0), MOBA(0), MobaEx(0),
hlq(0), LiquEx(0), LiquBytes(0), groupName(0), descGroupName(0), mogpFlags(0),
- mopy_size(0), moba_size(0), LiquEx_size(0), nVertices(0), nTriangles(0)
+ mopy_size(0), moba_size(0), LiquEx_size(0), nVertices(0), nTriangles(0),
+ moprIdx(0), moprNItems(0), nBatchA(0), nBatchB(0), fogIdx(0), liquidType(0),
+ groupWMOID(0), liquflags(0)
{
memset(bbcorn1, 0, sizeof(bbcorn1));
memset(bbcorn2, 0, sizeof(bbcorn2));
@@ -439,7 +437,7 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool precise
if (liquidEntry && liquidEntry < 21)
{
- switch (((uint8)liquidEntry - 1) & 3)
+ switch ((liquidEntry - 1) & 3)
{
case 0:
liquidEntry = ((mogpFlags & 0x80000) != 0) + 13;
@@ -453,8 +451,6 @@ int WMOGroup::ConvertToVMAPGroupWmo(FILE *output, WMORoot *rootWMO, bool precise
case 3:
liquidEntry = 20;
break;
- default:
- break;
}
}
@@ -488,7 +484,7 @@ WMOGroup::~WMOGroup()
}
WMOInstance::WMOInstance(MPQFile& f, char const* WmoInstName, uint32 mapID, uint32 tileX, uint32 tileY, FILE* pDirfile)
- : currx(0), curry(0), wmo(NULL), doodadset(0), pos(), indx(0), d3(0)
+ : currx(0), curry(0), wmo(NULL), doodadset(0), pos(), indx(0), id(0), d2(0), d3(0)
{
float ff[3];
f.read(&id, 4);
diff --git a/src/tools/vmap4_extractor/wmo.h b/src/tools/vmap4_extractor/wmo.h
index d0333265851..fe6cef03655 100644
--- a/src/tools/vmap4_extractor/wmo.h
+++ b/src/tools/vmap4_extractor/wmo.h
@@ -53,7 +53,6 @@ public:
float bbcorn2[3];
WMORoot(std::string& filename);
- ~WMORoot();
bool open();
bool ConvertToVMAPRootWmo(FILE* output);