浏览代码

Fixed CQuest leak

AlexVinS 9 年之前
父节点
当前提交
c6d257f328
共有 2 个文件被更改,包括 13 次插入2 次删除
  1. 11 0
      lib/mapObjects/CQuest.cpp
  2. 2 2
      lib/mapObjects/CQuest.h

+ 11 - 0
lib/mapObjects/CQuest.cpp

@@ -490,6 +490,17 @@ void CQuest::addReplacements(MetaString &out, const std::string &base) const
 	}
 }
 
+IQuestObject::IQuestObject():
+	quest(new CQuest())
+{
+
+}
+
+IQuestObject::~IQuestObject()
+{
+	delete quest;
+}
+
 bool IQuestObject::checkQuest(const CGHeroInstance* h) const
 {
 	return quest->checkQuest(h);

+ 2 - 2
lib/mapObjects/CQuest.h

@@ -87,8 +87,8 @@ class DLL_LINKAGE IQuestObject
 public:
 	CQuest * quest;
 
-	IQuestObject(): quest(new CQuest()){};
-	virtual ~IQuestObject() {};
+	IQuestObject();
+	virtual ~IQuestObject();
 	virtual void getVisitText (MetaString &text, std::vector<Component> &components, bool isCustom, bool FirstVisit, const CGHeroInstance * h = nullptr) const;
 	virtual bool checkQuest (const CGHeroInstance * h) const;