Fix Godot.Object.ToString() infinite recursion
Should not be using Variant to String conversion as that would call ToString() again
This commit is contained in:
parent
5ed3d34cd9
commit
aa3b8f7dbb
1 changed files with 12 additions and 1 deletions
|
@ -219,7 +219,18 @@ MonoBoolean godot_icall_DynamicGodotObject_SetMember(Object *p_ptr, MonoString *
|
||||||
}
|
}
|
||||||
|
|
||||||
MonoString *godot_icall_Object_ToString(Object *p_ptr) {
|
MonoString *godot_icall_Object_ToString(Object *p_ptr) {
|
||||||
return GDMonoMarshal::mono_string_from_godot(Variant(p_ptr).operator String());
|
#ifdef DEBUG_ENABLED
|
||||||
|
// Cannot happen in C#; would get an ObjectDisposedException instead.
|
||||||
|
CRASH_COND(p_ptr == NULL);
|
||||||
|
|
||||||
|
if (ScriptDebugger::get_singleton() && !Object::cast_to<Reference>(p_ptr)) { // Only if debugging!
|
||||||
|
// Cannot happen either in C#; the handle is nullified when the object is destroyed
|
||||||
|
CRASH_COND(!ObjectDB::instance_validate(p_ptr));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
String result = "[" + p_ptr->get_class() + ":" + itos(p_ptr->get_instance_id()) + "]";
|
||||||
|
return GDMonoMarshal::mono_string_from_godot(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void godot_register_object_icalls() {
|
void godot_register_object_icalls() {
|
||||||
|
|
Loading…
Reference in a new issue