checkpoint

This commit is contained in:
2020-04-29 23:47:06 -04:00
parent 64f7dd4b7d
commit 19a9fc06ba
31 changed files with 678 additions and 360 deletions

View File

@@ -14,30 +14,14 @@ namespace Foodsoft.Alpm
{
if (pNativeData == IntPtr.Zero)
return;
Marshal.FreeHGlobal(pNativeData);
Marshal.FreeCoTaskMem(pNativeData);
}
public int GetNativeDataSize() => -1;
public unsafe IntPtr MarshalManagedToNative(object? managedObj)
public IntPtr MarshalManagedToNative(object? managedObj)
{
if (managedObj is null) return IntPtr.Zero;
var s = (string) managedObj;
var nb = Encoding.UTF8.GetMaxByteCount(s.Length);
var pMem = Marshal.AllocHGlobal(nb + 1);
var pbMem = (byte*) pMem;
int nbWritten;
fixed (char* firstChar = s)
{
nbWritten = Encoding.UTF8.GetBytes(firstChar, s.Length, pbMem, nb);
}
pbMem[nbWritten] = 0;
return pMem;
return Marshal.StringToCoTaskMemUTF8((string?) managedObj);
}
public object MarshalNativeToManaged(IntPtr pNativeData)