[keel] Fix AssetRef to call incRef on initial creation of ref, not just copy
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (push) Successful in 1m18s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (push) Successful in 1m18s
				
			This commit is contained in:
		@@ -64,11 +64,13 @@ class AssetContainer {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	protected:
 | 
						protected:
 | 
				
			||||||
		constexpr void incRefs() const noexcept {
 | 
							constexpr void incRefs() const noexcept {
 | 
				
			||||||
 | 
								oxAssert(m_references < ox::MaxValue<decltype(m_references)>, "reference count exceeds maximum");
 | 
				
			||||||
			++m_references;
 | 
								++m_references;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		constexpr void decRefs() const noexcept {
 | 
							constexpr void decRefs() const noexcept {
 | 
				
			||||||
			--m_references;
 | 
								--m_references;
 | 
				
			||||||
 | 
								oxAssert(m_references >= 0, "negative references");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		[[nodiscard]]
 | 
							[[nodiscard]]
 | 
				
			||||||
@@ -162,6 +164,7 @@ template<typename T>
 | 
				
			|||||||
constexpr AssetRef<T>::AssetRef(AssetContainer<T> const*c) noexcept: m_ctr(c) {
 | 
					constexpr AssetRef<T>::AssetRef(AssetContainer<T> const*c) noexcept: m_ctr(c) {
 | 
				
			||||||
	if (m_ctr) {
 | 
						if (m_ctr) {
 | 
				
			||||||
		m_ctr->updated.connect(this, &AssetRef::emitUpdated);
 | 
							m_ctr->updated.connect(this, &AssetRef::emitUpdated);
 | 
				
			||||||
 | 
							m_ctr->incRefs();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user