Semver fixes, misc fixes

This commit is contained in:
Vojtech Kral 2018-04-11 17:07:27 +02:00
parent 12b3132b1a
commit b030791384
8 changed files with 35 additions and 33 deletions

View file

@ -43,11 +43,7 @@ public:
}
}
static const Semver zero()
{
static semver_t ver = { 0, 0, 0, nullptr, nullptr };
return Semver(ver);
}
static const Semver zero() { return Semver(semver_zero()); }
static const Semver inf()
{
@ -61,37 +57,21 @@ public:
return Semver(ver);
}
Semver(Semver &&other) : ver(other.ver)
{
other.ver.major = other.ver.minor = other.ver.patch = 0;
other.ver.metadata = other.ver.prerelease = nullptr;
}
Semver(const Semver &other) : ver(other.ver)
{
if (other.ver.metadata != nullptr)
ver.metadata = strdup(other.ver.metadata);
if (other.ver.prerelease != nullptr)
ver.prerelease = strdup(other.ver.prerelease);
}
Semver(Semver &&other) : ver(other.ver) { other.ver = semver_zero(); }
Semver(const Semver &other) : ver(::semver_copy(&other.ver)) {}
Semver &operator=(Semver &&other)
{
::semver_free(&ver);
ver = other.ver;
other.ver.major = other.ver.minor = other.ver.patch = 0;
other.ver.metadata = other.ver.prerelease = nullptr;
other.ver = semver_zero();
return *this;
}
Semver &operator=(const Semver &other)
{
::semver_free(&ver);
ver = other.ver;
if (other.ver.metadata != nullptr)
ver.metadata = strdup(other.ver.metadata);
if (other.ver.prerelease != nullptr)
ver.prerelease = strdup(other.ver.prerelease);
ver = ::semver_copy(&other.ver);
return *this;
}