12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #include "MarshalingUtils.h"
- #include "il2cpp-pinvoke-support.h"
- namespace il2cpp
- {
- namespace utils
- {
- void MarshalingUtils::MarshalStructToNative(void* managedStructure, void* marshaledStructure, const Il2CppInteropData* interopData)
- {
- #if RUNTIME_TINY
- IL2CPP_ASSERT(0 && "Not supported with the Tiny runtime");
- #else
- IL2CPP_ASSERT(interopData);
- IL2CPP_ASSERT(interopData->pinvokeMarshalToNativeFunction);
- interopData->pinvokeMarshalToNativeFunction(managedStructure, marshaledStructure);
- #endif
- }
- void MarshalingUtils::MarshalStructFromNative(void* marshaledStructure, void* managedStructure, const Il2CppInteropData* interopData)
- {
- #if RUNTIME_TINY
- IL2CPP_ASSERT(0 && "Not supported with the Tiny runtime");
- #else
- IL2CPP_ASSERT(interopData);
- IL2CPP_ASSERT(interopData->pinvokeMarshalFromNativeFunction);
- interopData->pinvokeMarshalFromNativeFunction(marshaledStructure, managedStructure);
- #endif
- }
- bool MarshalingUtils::MarshalFreeStruct(void* marshaledStructure, const Il2CppInteropData* interopData)
- {
- #if RUNTIME_TINY
- IL2CPP_ASSERT(0 && "Not supported with the Tiny runtime");
- return false;
- #else
- if (interopData == NULL)
- return false;
- PInvokeMarshalCleanupFunc cleanup = interopData->pinvokeMarshalCleanupFunction;
- if (cleanup == NULL)
- return false;
- cleanup(marshaledStructure);
- return true;
- #endif
- }
- } // namespace utils
- } // namespace il2cpp
|