|
@@ -164,8 +164,7 @@ class RID_Alloc : public RID_AllocBase {
|
|
|
uint32_t free_chunk = free_index / elements_in_chunk;
|
|
|
uint32_t free_element = free_index % elements_in_chunk;
|
|
|
|
|
|
- uint32_t validator = (uint32_t)(_gen_id() & 0x7FFFFFFF);
|
|
|
- CRASH_COND_MSG(validator == 0x7FFFFFFF, "Overflow in RID validator");
|
|
|
+ uint32_t validator = 1 + (uint32_t)(_gen_id() % 0x7FFFFFFF);
|
|
|
uint64_t id = validator;
|
|
|
id <<= 32;
|
|
|
id |= free_index;
|
|
@@ -329,7 +328,7 @@ public:
|
|
|
|
|
|
uint32_t validator = uint32_t(id >> 32);
|
|
|
|
|
|
- bool owned = (validator != 0x7FFFFFFF) && (chunks[idx_chunk][idx_element].validator & 0x7FFFFFFF) == validator;
|
|
|
+ bool owned = (chunks[idx_chunk][idx_element].validator & 0x7FFFFFFF) == validator;
|
|
|
|
|
|
if constexpr (THREAD_SAFE) {
|
|
|
mutex.unlock();
|