mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-09 18:27:00 +00:00
Fix various memory leaks
(cherry picked from commit prusa3d/PrusaSlicer@deb17c5920)
This commit is contained in:
@@ -56,12 +56,9 @@ ExtrusionEntityCollection::operator ExtrusionPaths() const
|
||||
return paths;
|
||||
}
|
||||
|
||||
ExtrusionEntity* ExtrusionEntityCollection::clone() const
|
||||
ExtrusionEntity *ExtrusionEntityCollection::clone() const
|
||||
{
|
||||
ExtrusionEntityCollection* coll = new ExtrusionEntityCollection(*this);
|
||||
for (size_t i = 0; i < coll->entities.size(); ++i)
|
||||
coll->entities[i] = this->entities[i]->clone();
|
||||
return coll;
|
||||
return new ExtrusionEntityCollection(*this);
|
||||
}
|
||||
|
||||
void ExtrusionEntityCollection::reverse()
|
||||
|
||||
@@ -110,10 +110,30 @@ public:
|
||||
void set_maj(int maj) { ver.major = maj; }
|
||||
void set_min(int min) { ver.minor = min; }
|
||||
void set_patch(int patch) { ver.patch = patch; }
|
||||
void set_metadata(boost::optional<const std::string&> meta) { ver.metadata = meta ? strdup(*meta) : nullptr; }
|
||||
void set_metadata(const char *meta) { ver.metadata = meta ? strdup(meta) : nullptr; }
|
||||
void set_prerelease(boost::optional<const std::string&> pre) { ver.prerelease = pre ? strdup(*pre) : nullptr; }
|
||||
void set_prerelease(const char *pre) { ver.prerelease = pre ? strdup(pre) : nullptr; }
|
||||
void set_metadata(boost::optional<const std::string &> meta)
|
||||
{
|
||||
if (ver.metadata)
|
||||
free(ver.metadata);
|
||||
ver.metadata = meta ? strdup(*meta) : nullptr;
|
||||
}
|
||||
void set_metadata(const char *meta)
|
||||
{
|
||||
if (ver.metadata)
|
||||
free(ver.metadata);
|
||||
ver.metadata = meta ? strdup(meta) : nullptr;
|
||||
}
|
||||
void set_prerelease(boost::optional<const std::string &> pre)
|
||||
{
|
||||
if (ver.prerelease)
|
||||
free(ver.prerelease);
|
||||
ver.prerelease = pre ? strdup(*pre) : nullptr;
|
||||
}
|
||||
void set_prerelease(const char *pre)
|
||||
{
|
||||
if (ver.prerelease)
|
||||
free(ver.prerelease);
|
||||
ver.prerelease = pre ? strdup(pre) : nullptr;
|
||||
}
|
||||
|
||||
// Comparison
|
||||
bool operator<(const Semver &b) const { return ::semver_compare(ver, b.ver) == -1; }
|
||||
|
||||
Reference in New Issue
Block a user