You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
ObjectID converted to a structure, fixes many bugs where used incorrectly as 32 bits.
This commit is contained in:
@@ -1916,7 +1916,6 @@ Object::Object() {
|
||||
_class_ptr = NULL;
|
||||
_block_signals = false;
|
||||
_predelete_ok = 0;
|
||||
_instance_id = 0;
|
||||
_instance_id = ObjectDB::add_instance(this);
|
||||
_can_translate = true;
|
||||
_is_queued_for_deletion = false;
|
||||
@@ -1972,7 +1971,7 @@ Object::~Object() {
|
||||
}
|
||||
|
||||
ObjectDB::remove_instance(this);
|
||||
_instance_id = 0;
|
||||
_instance_id = ObjectID();
|
||||
_predelete_ok = 2;
|
||||
|
||||
if (!ScriptServer::are_languages_finished()) {
|
||||
@@ -1995,14 +1994,14 @@ void postinitialize_handler(Object *p_object) {
|
||||
}
|
||||
|
||||
HashMap<ObjectID, Object *> ObjectDB::instances;
|
||||
ObjectID ObjectDB::instance_counter = 1;
|
||||
uint64_t ObjectDB::instance_counter = 1;
|
||||
HashMap<Object *, ObjectID, ObjectDB::ObjectPtrHash> ObjectDB::instance_checks;
|
||||
ObjectID ObjectDB::add_instance(Object *p_object) {
|
||||
|
||||
ERR_FAIL_COND_V(p_object->get_instance_id() != 0, 0);
|
||||
ERR_FAIL_COND_V(p_object->get_instance_id().is_valid(), ObjectID());
|
||||
|
||||
rw_lock->write_lock();
|
||||
ObjectID instance_id = ++instance_counter;
|
||||
ObjectID instance_id = ObjectID(++instance_counter);
|
||||
instances[instance_id] = p_object;
|
||||
instance_checks[p_object] = instance_id;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user