Core: Use std::array for managing kernel object space
These avoid relying on memset for clearing the arrays.
This commit is contained in:
parent
e9c5c563a5
commit
ab4648d3ca
|
@ -17,7 +17,6 @@ Handle g_main_thread = 0;
|
||||||
ObjectPool g_object_pool;
|
ObjectPool g_object_pool;
|
||||||
|
|
||||||
ObjectPool::ObjectPool() {
|
ObjectPool::ObjectPool() {
|
||||||
memset(occupied, 0, sizeof(bool) * MAX_COUNT);
|
|
||||||
next_id = INITIAL_NEXT_ID;
|
next_id = INITIAL_NEXT_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +56,7 @@ void ObjectPool::Clear() {
|
||||||
delete pool[i];
|
delete pool[i];
|
||||||
occupied[i] = false;
|
occupied[i] = false;
|
||||||
}
|
}
|
||||||
memset(pool, 0, sizeof(Object*)*MAX_COUNT);
|
pool.fill(nullptr);
|
||||||
next_id = INITIAL_NEXT_ID;
|
next_id = INITIAL_NEXT_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "common/common.h"
|
#include "common/common.h"
|
||||||
|
|
||||||
|
@ -160,9 +161,9 @@ private:
|
||||||
INITIAL_NEXT_ID = 0x10,
|
INITIAL_NEXT_ID = 0x10,
|
||||||
};
|
};
|
||||||
|
|
||||||
Object* pool[MAX_COUNT];
|
std::array<Object*, MAX_COUNT> pool;
|
||||||
bool occupied[MAX_COUNT];
|
std::array<bool, MAX_COUNT> occupied;
|
||||||
int next_id;
|
int next_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern ObjectPool g_object_pool;
|
extern ObjectPool g_object_pool;
|
||||||
|
|
Reference in New Issue