mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-19 21:10:12 +02:00
do not leak scenarioOpts in CMapInfo
This commit is contained in:
parent
cf1d5d0bc9
commit
437eadf1ed
@ -1146,7 +1146,7 @@ void SelectionTab::parseGames(const std::unordered_set<ResourceID> &files, bool
|
|||||||
// Create the map info object
|
// Create the map info object
|
||||||
CMapInfo mapInfo;
|
CMapInfo mapInfo;
|
||||||
mapInfo.mapHeader = make_unique<CMapHeader>();
|
mapInfo.mapHeader = make_unique<CMapHeader>();
|
||||||
mapInfo.scenarioOpts = new StartInfo;
|
mapInfo.scenarioOpts = nullptr;//to be created by serialiser
|
||||||
lf >> *(mapInfo.mapHeader.get()) >> mapInfo.scenarioOpts;
|
lf >> *(mapInfo.mapHeader.get()) >> mapInfo.scenarioOpts;
|
||||||
mapInfo.fileURI = file.getName();
|
mapInfo.fileURI = file.getName();
|
||||||
mapInfo.countPlayers();
|
mapInfo.countPlayers();
|
||||||
|
@ -35,11 +35,13 @@ CMapInfo::CMapInfo() : scenarioOpts(nullptr), playerAmnt(0), humanPlayers(0),
|
|||||||
|
|
||||||
#define STEAL(x) x = std::move(tmp.x)
|
#define STEAL(x) x = std::move(tmp.x)
|
||||||
|
|
||||||
CMapInfo::CMapInfo(CMapInfo && tmp)
|
CMapInfo::CMapInfo(CMapInfo && tmp):
|
||||||
|
scenarioOpts(nullptr), playerAmnt(0), humanPlayers(0),
|
||||||
|
actualHumanPlayers(0), isRandomMap(false)
|
||||||
{
|
{
|
||||||
|
std::swap(scenarioOpts, tmp.scenarioOpts);
|
||||||
STEAL(mapHeader);
|
STEAL(mapHeader);
|
||||||
STEAL(campaignHeader);
|
STEAL(campaignHeader);
|
||||||
STEAL(scenarioOpts);
|
|
||||||
STEAL(fileURI);
|
STEAL(fileURI);
|
||||||
STEAL(date);
|
STEAL(date);
|
||||||
STEAL(playerAmnt);
|
STEAL(playerAmnt);
|
||||||
@ -48,6 +50,10 @@ CMapInfo::CMapInfo(CMapInfo && tmp)
|
|||||||
STEAL(isRandomMap);
|
STEAL(isRandomMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CMapInfo::~CMapInfo()
|
||||||
|
{
|
||||||
|
vstd::clear_pointer(scenarioOpts);
|
||||||
|
}
|
||||||
|
|
||||||
void CMapInfo::mapInit(const std::string & fname)
|
void CMapInfo::mapInit(const std::string & fname)
|
||||||
{
|
{
|
||||||
|
@ -32,6 +32,7 @@ public:
|
|||||||
|
|
||||||
CMapInfo();
|
CMapInfo();
|
||||||
CMapInfo(CMapInfo && tmp);
|
CMapInfo(CMapInfo && tmp);
|
||||||
|
virtual ~CMapInfo();
|
||||||
|
|
||||||
CMapInfo &operator=(CMapInfo &&other);
|
CMapInfo &operator=(CMapInfo &&other);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user