forked from eden-emu/eden
		
	shader: Fix use-after-free bug in object_pool
This commit is contained in:
		
							parent
							
								
									0705eff8f6
								
							
						
					
					
						commit
						3095e9d9ec
					
				
					 1 changed files with 3 additions and 3 deletions
				
			
		|  | @ -18,7 +18,7 @@ public: | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     template <typename... Args> |     template <typename... Args> | ||||||
|     requires std::is_constructible_v<T, Args...>[[nodiscard]] T* Create(Args&&... args) { |     requires std::is_constructible_v<T, Args...> [[nodiscard]] T* Create(Args&&... args) { | ||||||
|         return std::construct_at(Memory(), std::forward<Args>(args)...); |         return std::construct_at(Memory(), std::forward<Args>(args)...); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -32,12 +32,12 @@ public: | ||||||
|             const size_t total_objects{root.num_objects + new_chunk_size * (chunks.size() - 1)}; |             const size_t total_objects{root.num_objects + new_chunk_size * (chunks.size() - 1)}; | ||||||
|             chunks.clear(); |             chunks.clear(); | ||||||
|             chunks.emplace_back(total_objects); |             chunks.emplace_back(total_objects); | ||||||
|             chunks.shrink_to_fit(); |  | ||||||
|         } else { |         } else { | ||||||
|             root.Release(); |             root.Release(); | ||||||
|             chunks.resize(1); |             chunks.resize(1); | ||||||
|             chunks.shrink_to_fit(); |  | ||||||
|         } |         } | ||||||
|  |         chunks.shrink_to_fit(); | ||||||
|  |         node = &chunks.front(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ReinUsesLisp
						ReinUsesLisp