audio/csound: fix build with clang 18

With clang 18, audio/csound fails to build:

/wrkdirs/usr/ports/audio/csound/work/csound-6.15.0/Opcodes/OSC.c:784:47: error: incompatible function pointer types passing 'int32_t (const char *, const char *, lo_arg **, int32_t, void *, void *)' (aka 'int (const char *, const char *, lo_arg **, int, void *, void *)') to parameter of type 'lo_method_handler' (aka 'int (*)(const char *, const char *, lo_arg **, int, struct lo_message_ *, void *)') [-Wincompatible-function-pointer-types]
  784 |                                               OSC_handler, p->port);
      |                                               ^~~~~~~~~~~
/usr/local/include/lo/lo_serverthread.h:151:72: note: passing argument to parameter 'h' here
  151 |                                const char *typespec, lo_method_handler h,
      |                                                                        ^

This is because the callback functions OSC_handler() and OSC_ahandler()
have the wrong signature: liblo's headers use 'int' for the 'argc'
argument, and 'lo_message' for the 'data' argument. Fix the parameter
types of the functions to match the liblo declarations.

PR:		277999
Approved by:	maintainer timeout (2 weeks)
MFH:		2024Q2
This commit is contained in:
Dimitry Andric 2024-03-27 20:53:05 +01:00
parent a73b9123eb
commit 8556c08e08

View file

@ -0,0 +1,20 @@
--- Opcodes/OSC.c.orig 2020-08-13 23:03:03 UTC
+++ Opcodes/OSC.c
@@ -477,7 +477,7 @@ static int32_t OSC_handler(const char *path, const cha
}
static int32_t OSC_handler(const char *path, const char *types,
- lo_arg **argv, int32_t argc, void *data, void *p)
+ lo_arg **argv, int argc, lo_message data, void *p)
{
IGN(argc); IGN(data);
OSC_PORT *pp = (OSC_PORT*) p;
@@ -958,7 +958,7 @@ static int32_t OSC_ahandler(const char *path, const ch
/* ******** ARRAY VERSION **** EXPERIMENTAL *** */
static int32_t OSC_ahandler(const char *path, const char *types,
- lo_arg **argv, int32_t argc, void *data, void *p)
+ lo_arg **argv, int argc, lo_message data, void *p)
{
IGN(argc); IGN(data);
OSC_PORT *pp = (OSC_PORT*) p;