|
|
@@ -55,10 +55,28 @@ namespace Tensorflow |
|
|
|
{ |
|
|
|
if(handle is null){ |
|
|
|
return new byte[0]; |
|
|
|
} |
|
|
|
var data = handle.ToArray(); |
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
public unsafe static byte[] ByteStringPieceFromNativeString(IntPtr handle) |
|
|
|
{ |
|
|
|
if (handle == IntPtr.Zero) |
|
|
|
{ |
|
|
|
return new byte[0]; |
|
|
|
} |
|
|
|
|
|
|
|
byte* str_data = (byte*)handle.ToPointer(); |
|
|
|
List<byte> bytes = new List<byte>(); |
|
|
|
byte current = 255; |
|
|
|
while (current != ((byte)'\0')) |
|
|
|
{ |
|
|
|
current = *(str_data++); |
|
|
|
bytes.Add(current); |
|
|
|
} |
|
|
|
var data = bytes.ToArray(); |
|
|
|
return data; |
|
|
|
} |
|
|
|
|
|
|
|
[UnmanagedFunctionPointer(CallingConvention.Winapi)] |
|
|
|
public delegate void Deallocator(IntPtr data, IntPtr size, ref DeallocatorArgs args); |
|
|
|