From da8096e6e35af250dcc56a1af76b8a211df63a90 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Sat, 6 Feb 2021 02:38:22 -0300
Subject: shader: Properly store phi on Inst

---
 src/shader_recompiler/object_pool.h | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

(limited to 'src/shader_recompiler/object_pool.h')

diff --git a/src/shader_recompiler/object_pool.h b/src/shader_recompiler/object_pool.h
index 7c65bbd921..a573add327 100644
--- a/src/shader_recompiler/object_pool.h
+++ b/src/shader_recompiler/object_pool.h
@@ -6,6 +6,7 @@
 
 #include <memory>
 #include <type_traits>
+#include <utility>
 
 namespace Shader {
 
@@ -31,14 +32,12 @@ public:
 
     void ReleaseContents() {
         Chunk* chunk{&root};
-        if (chunk) {
-            const size_t free_objects{chunk->free_objects};
-            if (free_objects == chunk_size) {
+        while (chunk) {
+            if (chunk->free_objects == chunk_size) {
                 break;
             }
-            chunk->free_objects = chunk_size;
-            for (size_t obj_id = free_objects; obj_id < chunk_size; ++obj_id) {
-                chunk->storage[obj_id].object.~T();
+            for (; chunk->free_objects < chunk_size; ++chunk->free_objects) {
+                chunk->storage[chunk->free_objects].object.~T();
             }
             chunk = chunk->next.get();
         }
-- 
cgit v1.2.3-70-g09d2