| 708 | } |
| 709 | |
| 710 | void MCore::ScriptingObject::SetInternalValues(MClass* klass, MObject* object, void* unmanagedPtr, const Guid* id) |
| 711 | { |
| 712 | #if PLATFORM_DESKTOP && !USE_MONO_AOT |
| 713 | static void* ScriptingObjectSetInternalValuesPtr = GetStaticMethodPointer(TEXT("ScriptingObjectSetInternalValues")); |
| 714 | CallStaticMethod<void, MObject*, void*, const Guid*>(ScriptingObjectSetInternalValuesPtr, object, unmanagedPtr, id); |
| 715 | #elif !USE_EDITOR && PLATFORM_SWITCH // TODO: test this on other AOT platforms (Android with Mono JIT doesn't work) |
| 716 | static MField* monoUnmanagedPtrField = ::ScriptingObject::GetStaticClass()->GetField("__unmanagedPtr"); |
| 717 | static MField* monoIdField = ::ScriptingObject::GetStaticClass()->GetField("__internalId"); |
| 718 | if (monoUnmanagedPtrField) |
| 719 | monoUnmanagedPtrField->SetValue(object, &unmanagedPtr); |
| 720 | if (id != nullptr && monoIdField) |
| 721 | monoIdField->SetValue(object, (void*)id); |
| 722 | #else |
| 723 | const MField* monoUnmanagedPtrField = klass->GetField("__unmanagedPtr"); |
| 724 | if (monoUnmanagedPtrField) |
| 725 | monoUnmanagedPtrField->SetValue(object, &unmanagedPtr); |
| 726 | const MField* monoIdField = klass->GetField("__internalId"); |
| 727 | if (id != nullptr && monoIdField) |
| 728 | monoIdField->SetValue(object, (void*)id); |
| 729 | #endif |
| 730 | } |
| 731 | |
| 732 | MObject* MCore::ScriptingObject::CreateScriptingObject(MClass* klass, void* unmanagedPtr, const Guid* id) |
| 733 | { |
nothing calls this directly
no test coverage detected