Reaper: Tune it up to be an smart GC.

This commit is contained in:
Fernando Sahmkow
2021-06-13 15:47:54 +02:00
parent a11bc4a382
commit d8ad6aa187
5 changed files with 130 additions and 13 deletions

View File

@ -130,6 +130,26 @@ bool ImageBase::IsSafeDownload() const noexcept {
return true;
}
void ImageBase::CheckBadOverlapState() {
if (False(flags & ImageFlagBits::BadOverlap)) {
return;
}
if (!overlapping_images.empty()) {
return;
}
flags &= ~ImageFlagBits::BadOverlap;
}
void ImageBase::CheckAliasState() {
if (False(flags & ImageFlagBits::Alias)) {
return;
}
if (!aliased_images.empty()) {
return;
}
flags &= ~ImageFlagBits::Alias;
}
void AddImageAlias(ImageBase& lhs, ImageBase& rhs, ImageId lhs_id, ImageId rhs_id) {
static constexpr auto OPTIONS = RelaxedOptions::Size | RelaxedOptions::Format;
ASSERT(lhs.info.type == rhs.info.type);