[General] Fix code analysis warning and memory leaks

This commit is contained in:
momo5502 2017-02-10 14:06:42 +01:00
parent a15ac958a3
commit b3f83fe955
3 changed files with 15 additions and 10 deletions

View File

@ -27,10 +27,11 @@ namespace Assets
Components::Logger::Error("Version %i is too high. I can only handle up to %i.\n", version, 2); Components::Logger::Error("Version %i is too high. I can only handle up to %i.\n", version, 2);
} }
Game::FxEditorEffectDef efx; Utils::Memory::Allocator allocator;
ZeroMemory(&efx, sizeof(efx)); Game::FxEditorEffectDef* efx = allocator.allocate<Game::FxEditorEffectDef>();
ZeroMemory(efx, sizeof(efx));
for (efx.elemCount = 0; ; ++efx.elemCount) for (efx->elemCount = 0; ; ++efx->elemCount)
{ {
const char* value = Game::Com_Parse(&session); const char* value = Game::Com_Parse(&session);
if (!value) break; if (!value) break;
@ -39,12 +40,12 @@ namespace Assets
Components::Logger::Error("Expected '{' to start a new segment, found '%s' instead.\n", value); Components::Logger::Error("Expected '{' to start a new segment, found '%s' instead.\n", value);
} }
if (efx.elemCount >= ARRAYSIZE(efx.elems)) if (efx->elemCount >= ARRAYSIZE(efx->elems))
{ {
Components::Logger::Error("Cannot have more than %i segments.\n", ARRAYSIZE(efx.elems)); Components::Logger::Error("Cannot have more than %i segments.\n", ARRAYSIZE(efx->elems));
} }
Game::FxEditorElemDef* element = &efx.elems[efx.elemCount]; Game::FxEditorElemDef* element = &efx->elems[efx->elemCount];
// TODO: Initialize some stuff here // TODO: Initialize some stuff here
while (true) while (true)

View File

@ -432,8 +432,7 @@ namespace Components
void Maps::UpdateDlcStatus() void Maps::UpdateDlcStatus()
{ {
bool hasAllDlcs = true; bool hasAllDlcs = true;
bool * hasDlc = new bool[DlcPacks.size()]; std::vector<bool> hasDlc;
int i = 0;
for (auto& pack : Maps::DlcPacks) for (auto& pack : Maps::DlcPacks)
{ {
bool hasAllMaps = true; bool hasAllMaps = true;
@ -447,13 +446,13 @@ namespace Components
} }
} }
hasDlc[i++] = hasAllMaps; hasDlc.push_back(hasAllMaps);
Dvar::Var(Utils::String::VA("isDlcInstalled_%d", pack.index)).setRaw(hasAllMaps ? 1 : 0); Dvar::Var(Utils::String::VA("isDlcInstalled_%d", pack.index)).setRaw(hasAllMaps ? 1 : 0);
} }
// Must have all of dlc 3 to 5 or it causes issues // Must have all of dlc 3 to 5 or it causes issues
static bool sentMessage = false; static bool sentMessage = false;
if ((hasDlc[2] || hasDlc[3] || hasDlc[4]) && (!hasDlc[2] || !hasDlc[3] || !hasDlc[4]) && !sentMessage) if (hasDlc.size() >= 5 && (hasDlc[2] || hasDlc[3] || hasDlc[4]) && (!hasDlc[2] || !hasDlc[3] || !hasDlc[4]) && !sentMessage)
{ {
StartupMessages::AddMessage("Warning:\n You only have some of DLCs 3-5 which are all required to be installed to work. There may be issues with those maps."); StartupMessages::AddMessage("Warning:\n You only have some of DLCs 3-5 which are all required to be installed to work. There may be issues with those maps.");
sentMessage = true; sentMessage = true;

View File

@ -8,6 +8,11 @@ namespace boost
#pragma warning(push) #pragma warning(push)
#pragma warning(disable: 4091) #pragma warning(disable: 4091)
#pragma warning(disable: 4996) #pragma warning(disable: 4996)
#pragma warning(disable: 6248)
#pragma warning(disable: 6282)
#pragma warning(disable: 6285)
#pragma warning(disable: 6388)
#pragma warning(disable: 28159)
#define _SCL_SECURE_NO_WARNINGS #define _SCL_SECURE_NO_WARNINGS
#ifdef sleep #ifdef sleep