MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / SetInternalValues

Method SetInternalValues

Source/Engine/Scripting/Runtime/DotNet.cpp:710–730  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

708}
709
710void 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
732MObject* MCore::ScriptingObject::CreateScriptingObject(MClass* klass, void* unmanagedPtr, const Guid* id)
733{

Callers

nothing calls this directly

Calls 3

GetStaticMethodPointerFunction · 0.85
GetFieldMethod · 0.45
SetValueMethod · 0.45

Tested by

no test coverage detected