1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-07-13 01:20:34 +02:00

Fixed CID 1288850

This commit is contained in:
AlexVinS
2016-11-26 22:24:16 +03:00
parent 30663f15ea
commit 8b4f1fc938

View File

@ -2933,6 +2933,7 @@ void InfoAboutArmy::initFromArmy(const CArmedInstance *Army, bool detailed)
void InfoAboutHero::assign(const InfoAboutHero & iah) void InfoAboutHero::assign(const InfoAboutHero & iah)
{ {
vstd::clear_pointer(details);
InfoAboutArmy::operator = (iah); InfoAboutArmy::operator = (iah);
details = (iah.details ? new Details(*iah.details) : nullptr); details = (iah.details ? new Details(*iah.details) : nullptr);
@ -2962,7 +2963,7 @@ InfoAboutHero::InfoAboutHero(const CGHeroInstance *h, InfoAboutHero::EInfoLevel
InfoAboutHero::~InfoAboutHero() InfoAboutHero::~InfoAboutHero()
{ {
delete details; vstd::clear_pointer(details);
} }
InfoAboutHero & InfoAboutHero::operator=(const InfoAboutHero & iah) InfoAboutHero & InfoAboutHero::operator=(const InfoAboutHero & iah)
@ -2973,6 +2974,7 @@ InfoAboutHero & InfoAboutHero::operator=(const InfoAboutHero & iah)
void InfoAboutHero::initFromHero(const CGHeroInstance *h, InfoAboutHero::EInfoLevel infoLevel) void InfoAboutHero::initFromHero(const CGHeroInstance *h, InfoAboutHero::EInfoLevel infoLevel)
{ {
vstd::clear_pointer(details);
if(!h) if(!h)
return; return;
@ -3013,14 +3015,18 @@ InfoAboutTown::InfoAboutTown():
} }
InfoAboutTown::InfoAboutTown(const CGTownInstance *t, bool detailed) InfoAboutTown::InfoAboutTown(const CGTownInstance *t, bool detailed):
details(nullptr),
tType(nullptr),
built(0),
fortLevel(0)
{ {
initFromTown(t, detailed); initFromTown(t, detailed);
} }
InfoAboutTown::~InfoAboutTown() InfoAboutTown::~InfoAboutTown()
{ {
delete details; vstd::clear_pointer(details);
} }
void InfoAboutTown::initFromTown(const CGTownInstance *t, bool detailed) void InfoAboutTown::initFromTown(const CGTownInstance *t, bool detailed)
@ -3032,6 +3038,8 @@ void InfoAboutTown::initFromTown(const CGTownInstance *t, bool detailed)
name = t->name; name = t->name;
tType = t->town; tType = t->town;
vstd::clear_pointer(details);
if(detailed) if(detailed)
{ {
//include details about hero //include details about hero