Browse Source

Added isValid(_handle).

Dario Manesku 10 years ago
parent
commit
c948c1e23a
1 changed files with 16 additions and 0 deletions
  1. 16 0
      include/bx/handlealloc.h

+ 16 - 0
include/bx/handlealloc.h

@@ -66,6 +66,14 @@ namespace bx
 			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)
 		{
 			BX_CHECK(0 < m_numHandles, "Freeing invalid handle %d.", _handle);
@@ -139,6 +147,14 @@ namespace bx
 			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)
 		{
 			uint16_t* sparse = &m_handles[m_maxHandles];