Fix GDNative compat breakage due to dangling Variants fix
This moves the instance id member from Variant to the ObjectRC so that Variant is still the same size as before the fix (and also regardless if debug or release build).
This commit is contained in:
@ -1516,7 +1516,7 @@ void Variant::set_named(const StringName &p_index, const Variant &p_value, bool
|
||||
Object *obj = _OBJ_PTR(*this);
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(!obj)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted set on a deleted object.");
|
||||
}
|
||||
break;
|
||||
@ -1684,7 +1684,7 @@ Variant Variant::get_named(const StringName &p_index, bool *r_valid) const {
|
||||
if (unlikely(!obj)) {
|
||||
if (r_valid)
|
||||
*r_valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted get on a deleted object.");
|
||||
}
|
||||
return Variant();
|
||||
@ -2169,7 +2169,7 @@ void Variant::set(const Variant &p_index, const Variant &p_value, bool *r_valid)
|
||||
if (unlikely(!obj)) {
|
||||
#ifdef DEBUG_ENABLED
|
||||
valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted set on a deleted object.");
|
||||
}
|
||||
#endif
|
||||
@ -2539,7 +2539,7 @@ Variant Variant::get(const Variant &p_index, bool *r_valid) const {
|
||||
if (unlikely(!obj)) {
|
||||
#ifdef DEBUG_ENABLED
|
||||
valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted get on a deleted object.");
|
||||
}
|
||||
#endif
|
||||
@ -2602,7 +2602,7 @@ bool Variant::in(const Variant &p_index, bool *r_valid) const {
|
||||
if (r_valid) {
|
||||
*r_valid = false;
|
||||
}
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted 'in' on a deleted object.");
|
||||
}
|
||||
#endif
|
||||
@ -2865,7 +2865,7 @@ void Variant::get_property_list(List<PropertyInfo> *p_list) const {
|
||||
Object *obj = _OBJ_PTR(*this);
|
||||
if (unlikely(!obj)) {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted get property list on a deleted object.");
|
||||
}
|
||||
#endif
|
||||
@ -2943,7 +2943,7 @@ bool Variant::iter_init(Variant &r_iter, bool &valid) const {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(!obj)) {
|
||||
valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted iteration start on a deleted object.");
|
||||
}
|
||||
return false;
|
||||
@ -3110,7 +3110,7 @@ bool Variant::iter_next(Variant &r_iter, bool &valid) const {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(!obj)) {
|
||||
valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted iteration check next on a deleted object.");
|
||||
}
|
||||
return false;
|
||||
@ -3268,7 +3268,7 @@ Variant Variant::iter_get(const Variant &r_iter, bool &r_valid) const {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(!obj)) {
|
||||
r_valid = false;
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().instance_id != 0 && !ObjectDB::get_instance(_get_obj().instance_id)) {
|
||||
if (ScriptDebugger::get_singleton() && _get_obj().rc && !ObjectDB::get_instance(_get_obj().rc->instance_id)) {
|
||||
WARN_PRINT("Attempted iteration get next on a deleted object.");
|
||||
}
|
||||
return Variant();
|
||||
|
||||
Reference in New Issue
Block a user