From d4a94980194be6875d03886e0340d83340c79e34 Mon Sep 17 00:00:00 2001 From: benbierens Date: Wed, 7 Aug 2024 08:56:33 +0200 Subject: [PATCH] Replaces no-error passC with importc pointer type definition --- leopard/leopard.nim | 6 ------ leopard/wrapper.nim | 9 ++++++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/leopard/leopard.nim b/leopard/leopard.nim index 0e6595f..dd749b9 100644 --- a/leopard/leopard.nim +++ b/leopard/leopard.nim @@ -12,12 +12,6 @@ push: {.upraises: [].} {.deadCodeElim: on.} -# in gcc-14, incompatible-pointer-types warning was promoted to error. -# function arguments in C of type 'const void* const * const' are seen as -# not compatible with nim 'ptr pointer' type. -# We use localPassC to disable this check for the compiling of nim-leopard. -{.localPassC:"-Wno-error=incompatible-pointer-types"} - import pkg/stew/results import ./wrapper diff --git a/leopard/wrapper.nim b/leopard/wrapper.nim index da29704..5efbf1b 100644 --- a/leopard/wrapper.nim +++ b/leopard/wrapper.nim @@ -67,6 +67,9 @@ import std/compilesettings import std/os import std/strutils +type + LeoDataPtr* {.importc: "const void* const * const", bycopy.} = pointer + const LeopardCmakeFlags {.strdefine.} = when defined(macosx): @@ -225,7 +228,7 @@ proc leoEncode*( originalCount: cuint; recoveryCount: cuint; workCount: cuint; - originalData: ptr pointer; + originalData: LeoDataPtr; workData: ptr pointer): LeopardResult {.leo, importc: "leo_encode".} ## Number of bytes in each data buffer ## Number of original_data[] buffer pointers @@ -277,8 +280,8 @@ proc leoDecode*( originalCount: cuint; recoveryCount: cuint; workCount: cuint; - originalData: ptr pointer; - recoveryData: ptr pointer; + originalData: LeoDataPtr; + recoveryData: LeoDataPtr; workData: ptr pointer): LeopardResult {.leo, importc: "leo_decode".} ## Number of bytes in each data buffer ## Number of original_data[] buffer pointers