diff options
| author | Nay <dnpd.dd@gmail.com> | 2013-08-24 22:56:29 +0100 |
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2013-08-24 22:57:22 +0100 |
| commit | 12973de799dde8f89b9049964e26ab63a960520a (patch) | |
| tree | 2f1d0c6346c71f1c9543aa9fb497af3d12053249 /src/tools | |
| parent | 61016dcc66eaeef26dd21d3f5cf7323809a76080 (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.h | 1 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/MapBuilder.cpp | 32 | ||||
| -rw-r--r-- | src/tools/mmaps_generator/PathCommon.h | 1 | ||||
| -rw-r--r-- | src/tools/vmap4_assembler/VMapAssembler.cpp | 5 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/gameobject_extract.cpp | 8 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/vmapexport.cpp | 8 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wmo.cpp | 14 | ||||
| -rw-r--r-- | src/tools/vmap4_extractor/wmo.h | 1 |
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); |
