|
@@ -519,9 +519,7 @@ public:
|
|
|
dld{rhs.dld} {}
|
|
dld{rhs.dld} {}
|
|
|
|
|
|
|
|
/// Assign an allocation transfering ownership from another allocation.
|
|
/// Assign an allocation transfering ownership from another allocation.
|
|
|
- /// Releases any previously held allocation.
|
|
|
|
|
PoolAllocations& operator=(PoolAllocations&& rhs) noexcept {
|
|
PoolAllocations& operator=(PoolAllocations&& rhs) noexcept {
|
|
|
- Release();
|
|
|
|
|
allocations = std::move(rhs.allocations);
|
|
allocations = std::move(rhs.allocations);
|
|
|
num = rhs.num;
|
|
num = rhs.num;
|
|
|
device = rhs.device;
|
|
device = rhs.device;
|
|
@@ -530,11 +528,6 @@ public:
|
|
|
return *this;
|
|
return *this;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /// Destroys any held allocation.
|
|
|
|
|
- ~PoolAllocations() {
|
|
|
|
|
- Release();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
/// Returns the number of allocations.
|
|
/// Returns the number of allocations.
|
|
|
std::size_t size() const noexcept {
|
|
std::size_t size() const noexcept {
|
|
|
return num;
|
|
return num;
|
|
@@ -557,19 +550,6 @@ public:
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
private:
|
|
|
- /// Destroys the held allocations if they exist.
|
|
|
|
|
- void Release() noexcept {
|
|
|
|
|
- if (!allocations) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- const Span<AllocationType> span(allocations.get(), num);
|
|
|
|
|
- const VkResult result = Free(device, pool, span, *dld);
|
|
|
|
|
- // There's no way to report errors from a destructor.
|
|
|
|
|
- if (result != VK_SUCCESS) {
|
|
|
|
|
- std::terminate();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
std::unique_ptr<AllocationType[]> allocations;
|
|
std::unique_ptr<AllocationType[]> allocations;
|
|
|
std::size_t num = 0;
|
|
std::size_t num = 0;
|
|
|
VkDevice device = nullptr;
|
|
VkDevice device = nullptr;
|