Revert fd938e8284
This commit is contained in:
@@ -1112,9 +1112,11 @@ namespace FlaxEngine.Interop
|
|||||||
|
|
||||||
internal static void ToManagedPointer(ref IntPtr managedValue, IntPtr nativePtr, bool byRef)
|
internal static void ToManagedPointer(ref IntPtr managedValue, IntPtr nativePtr, bool byRef)
|
||||||
{
|
{
|
||||||
if (byRef)
|
Type type = typeof(T);
|
||||||
nativePtr = Unsafe.Read<IntPtr>(nativePtr.ToPointer());
|
byRef |= type.IsByRef; // Is this needed?
|
||||||
managedValue = nativePtr;
|
if (type.IsByRef)
|
||||||
|
Assert.IsTrue(type.GetElementType().IsValueType);
|
||||||
|
managedValue = byRef ? nativePtr : Unsafe.Read<IntPtr>(nativePtr.ToPointer());
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void ToManagedHandle(ref ManagedHandle managedValue, IntPtr nativePtr, bool byRef)
|
internal static void ToManagedHandle(ref ManagedHandle managedValue, IntPtr nativePtr, bool byRef)
|
||||||
|
|||||||
@@ -1209,9 +1209,20 @@ void* MUtils::VariantToManagedArgPtr(Variant& value, MType* type, bool& failed)
|
|||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
case MTypes::Ptr:
|
case MTypes::Ptr:
|
||||||
if (value.Type.Type == VariantType::Null)
|
switch (value.Type.Type)
|
||||||
|
{
|
||||||
|
case VariantType::Pointer:
|
||||||
|
return &value.AsPointer;
|
||||||
|
case VariantType::Object:
|
||||||
|
return &value.AsObject;
|
||||||
|
case VariantType::Asset:
|
||||||
|
return &value.AsAsset;
|
||||||
|
case VariantType::Structure:
|
||||||
|
case VariantType::Blob:
|
||||||
|
return &value.AsBlob.Data;
|
||||||
|
default:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
return (void*)value;
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user