[AaruFormat] Fix size_t marshalling.

This commit is contained in:
2025-10-14 02:46:20 +01:00
parent 6c4a13265c
commit 6b170b94d1
4 changed files with 13 additions and 14 deletions

View File

@@ -143,7 +143,7 @@ public sealed partial class AaruFormat
byte[] blockBytes = blockMs.ToArray();
Status res = aaruf_set_dumphw(_context, blockBytes, blockBytes.Length);
Status res = aaruf_set_dumphw(_context, blockBytes, (nuint)blockBytes.Length);
ErrorMessage = StatusToErrorMessage(res);
@@ -299,7 +299,7 @@ public sealed partial class AaruFormat
// AARU_EXPORT int32_t AARU_CALL aaruf_set_dumphw(void *context, uint8_t *data, size_t length)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_set_dumphw", SetLastError = true)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_set_dumphw(IntPtr context, [In] byte[] data, nint length);
private static partial Status aaruf_set_dumphw(IntPtr context, [In] byte[] data, nuint length);
// AARU_EXPORT int32_t AARU_CALL aaruf_get_dumphw(void *context, uint8_t *buffer, size_t *length)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_get_dumphw", SetLastError = true)]

View File

@@ -29,7 +29,7 @@ public sealed partial class AaruFormat
byte[] buffer = jsonMs.ToArray();
return aaruf_set_aaru_json_metadata(_context, buffer, (ulong)buffer.Length) == Status.Ok;
return aaruf_set_aaru_json_metadata(_context, buffer, (nuint)buffer.Length) == Status.Ok;
}
/// <inheritdoc />
@@ -169,7 +169,7 @@ public sealed partial class AaruFormat
{
get
{
ulong length = 0;
nuint length = 0;
Status res = aaruf_get_aaru_json_metadata(_context, null, ref length);
if(res != Status.Ok && res != Status.BufferTooSmall)
@@ -294,7 +294,7 @@ public sealed partial class AaruFormat
// AARU_EXPORT int32_t AARU_CALL aaruf_set_aaru_json_metadata(void *context, uint8_t *data, size_t length)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_set_aaru_json_metadata", SetLastError = true)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_set_aaru_json_metadata(IntPtr context, [In] byte[] data, ulong length);
private static partial Status aaruf_set_aaru_json_metadata(IntPtr context, [In] byte[] data, nuint length);
// AARU_EXPORT int32_t AARU_CALL aaruf_set_geometry(void *context, const uint32_t cylinders, const uint32_t heads,
// const uint32_t sectors_per_track)
@@ -372,7 +372,7 @@ public sealed partial class AaruFormat
// AARU_EXPORT int32_t AARU_CALL aaruf_get_aaru_json_metadata(const void *context, uint8_t *buffer, size_t *length)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_get_aaru_json_metadata", SetLastError = true)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_get_aaru_json_metadata(IntPtr context, byte[] buffer, ref ulong length);
private static partial Status aaruf_get_aaru_json_metadata(IntPtr context, byte[] buffer, ref nuint length);
// AARU_EXPORT int32_t AARU_CALL aaruf_clear_media_sequence(void *context)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_clear_media_sequence", SetLastError = true)]

View File

@@ -25,10 +25,9 @@ public sealed partial class AaruFormat
{
if(_tracks is not null) return _tracks;
byte[] buffer = null;
ulong length = 0;
nuint length = 0;
Status res = aaruf_get_tracks(_context, buffer, ref length);
Status res = aaruf_get_tracks(_context, null, ref length);
if(res != Status.BufferTooSmall)
{
@@ -37,8 +36,8 @@ public sealed partial class AaruFormat
return null;
}
buffer = new byte[length];
res = aaruf_get_tracks(_context, buffer, ref length);
var buffer = new byte[length];
res = aaruf_get_tracks(_context, buffer, ref length);
if(res != Status.Ok)
{
@@ -197,7 +196,7 @@ public sealed partial class AaruFormat
// AARU_EXPORT int32_t AARU_CALL aaruf_get_tracks(const void *context, uint8_t *buffer, size_t *length)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_get_tracks", SetLastError = true)]
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_get_tracks(IntPtr context, byte[] buffer, ref ulong length);
private static partial Status aaruf_get_tracks(IntPtr context, byte[] buffer, ref nuint length);
// AARU_EXPORT int32_t AARU_CALL aaruf_set_tracks(void *context, TrackEntry *tracks, const int count)
[LibraryImport("libaaruformat", EntryPoint = "aaruf_set_tracks", SetLastError = true)]

View File

@@ -52,7 +52,7 @@ public sealed partial class AaruFormat
/// <inheritdoc />
public bool WriteSectorTag(byte[] data, ulong sectorAddress, SectorTagType tag)
{
Status res = aaruf_write_sector_tag(_context, sectorAddress, false, data, (ulong)data.Length, tag);
Status res = aaruf_write_sector_tag(_context, sectorAddress, false, data, (nuint)data.Length, tag);
if(res == Status.Ok) return true;
@@ -179,7 +179,7 @@ public sealed partial class AaruFormat
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_write_sector_tag(IntPtr context, ulong sectorAddress,
[MarshalAs(UnmanagedType.I4)] bool negative, [In] byte[] data,
ulong length, SectorTagType tag);
nuint length, SectorTagType tag);
// AARU_EXPORT void AARU_CALL *aaruf_create(const char *filepath, const uint32_t media_type, const uint32_t sector_size,
// const uint64_t user_sectors, const uint64_t negative_sectors,