diff options
Diffstat (limited to 'ZAPD/ZVector.cpp')
| -rw-r--r-- | ZAPD/ZVector.cpp | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/ZAPD/ZVector.cpp b/ZAPD/ZVector.cpp index 98dc3f2..2a732bc 100644 --- a/ZAPD/ZVector.cpp +++ b/ZAPD/ZVector.cpp @@ -15,8 +15,21 @@ ZVector::ZVector(ZFile* nParent) : ZResource(nParent) this->dimensions = 0; } +ZVector::~ZVector() +{ + ClearScalars(); +} + +void ZVector::ClearScalars() +{ + for(auto s: scalars) + delete s; + + scalars.clear(); +} + void ZVector::ExtractFromXML(tinyxml2::XMLElement* reader, const std::vector<uint8_t>& nRawData, - const int nRawDataIndex, const std::string& nRelPath) + const uint32_t nRawDataIndex, const std::string& nRelPath) { ZResource::ExtractFromXML(reader, nRawData, nRawDataIndex, nRelPath); } @@ -34,9 +47,9 @@ void ZVector::ParseXML(tinyxml2::XMLElement* reader) void ZVector::ParseRawData() { - int currentRawDataIndex = this->rawDataIndex; + int32_t currentRawDataIndex = this->rawDataIndex; - scalars.clear(); + ClearScalars(); for (uint32_t i = 0; i < this->dimensions; i++) { @@ -53,11 +66,11 @@ void ZVector::ParseRawData() assert(this->scalars.size() == this->dimensions); } -int ZVector::GetRawDataSize() +size_t ZVector::GetRawDataSize() { - int size = 0; + size_t size = 0; - for (int i = 0; i < this->scalars.size(); i++) + for (size_t i = 0; i < this->scalars.size(); i++) size += this->scalars[i]->GetRawDataSize(); return size; @@ -93,7 +106,7 @@ std::string ZVector::GetSourceValue() { std::vector<std::string> strings = std::vector<std::string>(); - for (int i = 0; i < this->scalars.size(); i++) + for (size_t i = 0; i < this->scalars.size(); i++) strings.push_back(scalars[i]->GetSourceValue()); return "{ " + StringHelper::Implode(strings, ", ") + " }"; |
