Browse Source

Merge pull request #1859 from rilian-la-te/fix-stack-smash

vcmi: fix stack smash
Ivan Savenko 2 years ago
parent
commit
e1c3550ae2
2 changed files with 12 additions and 12 deletions
  1. 9 9
      lib/ResourceSet.cpp
  2. 3 3
      lib/ResourceSet.h

+ 9 - 9
lib/ResourceSet.cpp

@@ -22,20 +22,20 @@ VCMI_LIB_NAMESPACE_BEGIN
 Res::ResourceSet::ResourceSet(const JsonNode & node)
 {
 	for(auto i = 0; i < GameConstants::RESOURCE_QUANTITY; i++)
-		this[i] = static_cast<int>(node[GameConstants::RESOURCE_NAMES[i]].Float());
+		container[i] = static_cast<int>(node[GameConstants::RESOURCE_NAMES[i]].Float());
 }
 
 Res::ResourceSet::ResourceSet(TResource wood, TResource mercury, TResource ore, TResource sulfur, TResource crystal,
 							TResource gems, TResource gold, TResource mithril)
 {
-	this[Res::WOOD] = wood;
-	this[Res::MERCURY] = mercury;
-	this[Res::ORE] = ore;
-	this[Res::SULFUR] = sulfur;
-	this[Res::CRYSTAL] = crystal;
-	this[Res::GEMS] = gems;
-	this[Res::GOLD] = gold;
-	this[Res::MITHRIL] = mithril;
+	container[Res::WOOD] = wood;
+	container[Res::MERCURY] = mercury;
+	container[Res::ORE] = ore;
+	container[Res::SULFUR] = sulfur;
+	container[Res::CRYSTAL] = crystal;
+	container[Res::GEMS] = gems;
+	container[Res::GOLD] = gold;
+	container[Res::MITHRIL] = mithril;
 }
 
 void Res::ResourceSet::serializeJson(JsonSerializeFormat & handler, const std::string & fieldName)

+ 3 - 3
lib/ResourceSet.h

@@ -36,7 +36,7 @@ namespace Res
 	class ResourceSet
 	{
 	private:
-		std::array<int, GameConstants::RESOURCE_QUANTITY> container;
+		std::array<TResource, GameConstants::RESOURCE_QUANTITY> container;
 	public:
 		// read resources set from json. Format example: { "gold": 500, "wood":5 }
 		DLL_LINKAGE ResourceSet(const JsonNode & node);
@@ -105,12 +105,12 @@ namespace Res
 
 		TResource & operator[](size_t index)
 		{
-			return container[index];
+			return container.at(index);
 		}
 
 		const TResource & operator[](size_t index) const 
 		{
-			return container[index];
+			return container.at(index);
 		}
 
 		bool empty () const