diff --git a/BeefLibs/corlib/src/Object.bf b/BeefLibs/corlib/src/Object.bf index 6dc25031..c6e3b37c 100644 --- a/BeefLibs/corlib/src/Object.bf +++ b/BeefLibs/corlib/src/Object.bf @@ -144,18 +144,25 @@ namespace System NumberFormatter.AddrToString((uint)Internal.UnsafeCastToPtr(this), strBuffer); #else let t = RawGetType(); - if (t.IsBoxedStructPtr) + if (t == null) { - let ti = (TypeInstance)t; - let innerPtr = *(void**)((uint8*)Internal.UnsafeCastToPtr(this) + ti.[Friend]mMemberDataOffset); - strBuffer.Append("("); - ti.UnderlyingType.GetFullName(strBuffer); - //strBuffer.AppendF("*)0x{0:A}", (UInt.Simple)(uint)(void*)innerPtr); - strBuffer.Append("*)0x"); - NumberFormatter.AddrToString((uint)(void*)innerPtr, strBuffer); - return; + strBuffer.AppendF($"Type#{(Int.Simple)GetTypeId()}"); + } + else + { + if (t.IsBoxedStructPtr) + { + let ti = (TypeInstance)t; + let innerPtr = *(void**)((uint8*)Internal.UnsafeCastToPtr(this) + ti.[Friend]mMemberDataOffset); + strBuffer.Append("("); + ti.UnderlyingType.GetFullName(strBuffer); + //strBuffer.AppendF("*)0x{0:A}", (UInt.Simple)(uint)(void*)innerPtr); + strBuffer.Append("*)0x"); + NumberFormatter.AddrToString((uint)(void*)innerPtr, strBuffer); + return; + } + t.GetFullName(strBuffer); } - t.GetFullName(strBuffer); strBuffer.Append("@0x"); NumberFormatter.AddrToString((uint)Internal.UnsafeCastToPtr(this), strBuffer); #endif