1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 14:24:10 +02:00

FFI invocation fix where data conversion is required

This commit is contained in:
Brian Fiete 2024-09-09 15:13:55 -04:00
parent db0af3a8e5
commit 5e2f036918

View file

@ -610,7 +610,12 @@ namespace System.Reflection
List<FFIType*> ffiParamList = scope .(16); List<FFIType*> ffiParamList = scope .(16);
List<void*> ffiArgList = scope .(16); List<void*> ffiArgList = scope .(16);
List<Variant> tempVariants = scope .(4); List<Variant*> tempVariants = scope .(4);
defer
{
for (var variant in tempVariants)
variant.Dispose();
}
var target; var target;
@ -768,8 +773,10 @@ namespace System.Reflection
{ {
if (Convert.ConvertTo(arg, paramType) case .Ok(var variant)) if (Convert.ConvertTo(arg, paramType) case .Ok(var variant))
{ {
tempVariants.Add(variant); var tempVariant = scope:mixin Variant();
dataPtr = variant.GetValueData(); *tempVariant = variant;
tempVariants.Add(tempVariant);
dataPtr = tempVariant.GetValueData();
} }
else else
isValid = false; isValid = false;