2
0
Эх сурвалжийг харах

Merge pull request #49 from dariomanesku/master

Added isValid(_handle).
Branimir Karadžić 10 жил өмнө
parent
commit
bc9b76c35f

+ 16 - 0
include/bx/handlealloc.h

@@ -66,6 +66,14 @@ namespace bx
 			return invalid;
 			return invalid;
 		}
 		}
 
 
+		bool isValid(uint16_t _handle)
+		{
+			uint16_t* sparse = &m_handles[MaxHandlesT];
+			uint16_t index = sparse[_handle];
+
+			return (index < m_numHandles && m_handles[index] == _handle);
+		}
+
 		void free(uint16_t _handle)
 		void free(uint16_t _handle)
 		{
 		{
 			BX_CHECK(0 < m_numHandles, "Freeing invalid handle %d.", _handle);
 			BX_CHECK(0 < m_numHandles, "Freeing invalid handle %d.", _handle);
@@ -139,6 +147,14 @@ namespace bx
 			return invalid;
 			return invalid;
 		}
 		}
 
 
+		bool isValid(uint16_t _handle)
+		{
+			uint16_t* sparse = &m_handles[m_maxHandles];
+			uint16_t index = sparse[_handle];
+
+			return (index < m_numHandles && m_handles[index] == _handle);
+		}
+
 		void free(uint16_t _handle)
 		void free(uint16_t _handle)
 		{
 		{
 			uint16_t* sparse = &m_handles[m_maxHandles];
 			uint16_t* sparse = &m_handles[m_maxHandles];