소스 검색

Check that resource type set before setName used

ArseniyShestakov 11 년 전
부모
커밋
8f08effe93
2개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 0
      lib/filesystem/ResourceID.cpp
  2. 2 1
      lib/filesystem/ResourceID.h

+ 5 - 0
lib/filesystem/ResourceID.cpp

@@ -33,6 +33,7 @@ ResourceID::ResourceID()
 }
 
 ResourceID::ResourceID(std::string name)
+	:type(EResType::UNDEFINED)
 {
 	CFileInfo info(std::move(name));
 	setType(info.getType());
@@ -40,6 +41,7 @@ ResourceID::ResourceID(std::string name)
 }
 
 ResourceID::ResourceID(std::string name, EResType::Type type)
+	:type(EResType::UNDEFINED)
 {
 	setType(type);
 	setName(std::move(name));
@@ -57,6 +59,9 @@ EResType::Type ResourceID::getType() const
 
 void ResourceID::setName(std::string name)
 {
+	// setName shouldn't be used if type is UNDEFINED
+	assert(type != EResType::UNDEFINED);
+
 	this->name = std::move(name);
 
 	size_t dotPos = this->name.find_last_of("/.");

+ 2 - 1
lib/filesystem/ResourceID.h

@@ -56,7 +56,8 @@ namespace EResType
 		ERM,
 		ERT,
 		ERS,
-		OTHER
+		OTHER,
+		UNDEFINED
 	};
 }