Skip to content

compilation with modern gcc #311

@emrum

Description

@emrum

the git did not compile, because the function pointers need modification for
gcc 15.2.1

example:

// old:
void (*mode_func_ptr)();

// new:
void (*mode_func_ptr)( void* );

here is the patch for the required changes:

diff --git a/include/pyomodule.h b/include/pyomodule.h
index bb6c45b1..c260e2c8 100644
--- a/include/pyomodule.h
+++ b/include/pyomodule.h
@@ -611,9 +611,9 @@ extern PyTypeObject MMLZStreamType;
     PyObject_HEAD \
     PyObject *server; \
     Stream *stream; \
-    void (*mode_func_ptr)(); \
-    void (*proc_func_ptr)(); \
-    void (*muladd_func_ptr)(); \
+    void (*mode_func_ptr)( void * ); \
+    void (*proc_func_ptr)( void * ); \
+    void (*muladd_func_ptr)( void * ); \
     PyObject *mul; \
     Stream *mul_stream; \
     PyObject *add; \
@@ -2147,4 +2147,4 @@ extern PyTypeObject MMLZStreamType;
     Py_INCREF(self); \
     return 0;
 
-#endif // _PYOMODULE_H
\ No newline at end of file
+#endif // _PYOMODULE_H
diff --git a/include/streammodule.h b/include/streammodule.h
index b282ecb7..247223c0 100644
--- a/include/streammodule.h
+++ b/include/streammodule.h
@@ -28,7 +28,7 @@ typedef struct
 {
     PyObject_HEAD
     PyObject *streamobject;
-    void (*funcptr)();
+    void (*funcptr)( void * );
     int sid;
     int chnl;
     int bufsize;
diff --git a/src/objects/chorusmodule.c b/src/objects/chorusmodule.c
index d6685511..8ffdb938 100644
--- a/src/objects/chorusmodule.c
+++ b/src/objects/chorusmodule.c
@@ -51,7 +51,7 @@ typedef struct
     Stream *depth_stream;
     PyObject *mix;
     Stream *mix_stream;
-    void (*mix_func_ptr)();
+    void (*mix_func_ptr)( void * );
     int modebuffer[5];
     MYFLT total_signal;
     MYFLT delays[8];
@@ -722,4 +722,4 @@ PyTypeObject ChorusType =
     0,      /* tp_init */
     0,                         /* tp_alloc */
     Chorus_new,                 /* tp_new */
-};
\ No newline at end of file
+};
diff --git a/src/objects/filtremodule.c b/src/objects/filtremodule.c
index 274e82ff..fda4d4a5 100644
--- a/src/objects/filtremodule.c
+++ b/src/objects/filtremodule.c
@@ -37,7 +37,7 @@ typedef struct
     Stream *freq_stream;
     PyObject *q;
     Stream *q_stream;
-    void (*coeffs_func_ptr)();
+    void (*coeffs_func_ptr)( void* );
     int init;
     int modebuffer[4]; // need at least 2 slots for mul & add
     int filtertype;
@@ -584,7 +584,7 @@ typedef struct
     Stream *freq_stream;
     PyObject *q;
     Stream *q_stream;
-    void (*coeffs_func_ptr)();
+    void (*coeffs_func_ptr)( void* );
     int init;
     int modebuffer[4]; // need at least 2 slots for mul & add
     int filtertype;
@@ -1619,7 +1619,7 @@ typedef struct
     Stream *q_stream;
     PyObject *boost;
     Stream *boost_stream;
-    void (*coeffs_func_ptr)();
+    void (*coeffs_func_ptr)( void* );
     int init;
     int modebuffer[5]; // need at least 2 slots for mul & add
     int filtertype;
diff --git a/src/objects/randommodule.c b/src/objects/randommodule.c
index cf9e21e5..2ae45cc5 100644
--- a/src/objects/randommodule.c
+++ b/src/objects/randommodule.c
@@ -2437,7 +2437,7 @@ typedef struct
     Stream *x1_stream;
     Stream *x2_stream;
     Stream *freq_stream;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     MYFLT xx1;
     MYFLT xx2;
     int type;
@@ -3363,7 +3363,7 @@ typedef struct
     Stream *x1_stream;
     Stream *x2_stream;
     Stream *freq_stream;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     int scale; // 0 = Midi, 1 = frequency, 2 = transpo
     MYFLT xx1;
     MYFLT xx2;
@@ -4379,7 +4379,7 @@ typedef struct
     Stream *x2_stream;
     Stream *min_stream;
     Stream *max_stream;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     MYFLT xx1;
     MYFLT xx2;
     int type;
diff --git a/src/objects/sfplayermodule.c b/src/objects/sfplayermodule.c
index ab89fb0a..29528fc1 100644
--- a/src/objects/sfplayermodule.c
+++ b/src/objects/sfplayermodule.c
@@ -875,7 +875,7 @@ typedef struct
     MYFLT *markers;
     int markers_size;
     MYFLT x;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     MYFLT (*interp_func_ptr)(MYFLT *, T_SIZE_T, MYFLT, T_SIZE_T);
 } SfMarkerShuffler;
 
@@ -2682,4 +2682,4 @@ PyTypeObject SfMarkerLoopType =
     0,      /* tp_init */
     0,                         /* tp_alloc */
     SfMarkerLoop_new,                 /* tp_new */
-};
\ No newline at end of file
+};
diff --git a/src/objects/trigmodule.c b/src/objects/trigmodule.c
index c9c55007..28f42932 100644
--- a/src/objects/trigmodule.c
+++ b/src/objects/trigmodule.c
@@ -2770,7 +2770,7 @@ typedef struct
     PyObject *x2;
     Stream *x1_stream;
     Stream *x2_stream;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     MYFLT xx1;
     MYFLT xx2;
     int type;
@@ -3533,7 +3533,7 @@ typedef struct
     PyObject *x2;
     Stream *x1_stream;
     Stream *x2_stream;
-    MYFLT (*type_func_ptr)();
+    MYFLT (*type_func_ptr)( void* );
     int scale; // 0 = Midi, 1 = frequency, 2 = transpo
     int range_min;
     int range_max;
@@ -7161,4 +7161,4 @@ PyTypeObject TrigValType =
     0,                          /* tp_init */
     0,                                              /* tp_alloc */
     TrigVal_new,                                     /* tp_new */
-};
\ No newline at end of file
+};
diff --git a/src/objects/wgverbmodule.c b/src/objects/wgverbmodule.c
index 3be760bd..dd254d80 100644
--- a/src/objects/wgverbmodule.c
+++ b/src/objects/wgverbmodule.c
@@ -54,7 +54,7 @@ typedef struct
     Stream *cutoff_stream;
     PyObject *mix;
     Stream *mix_stream;
-    void (*mix_func_ptr)();
+    void (*mix_func_ptr)( void* );
     int modebuffer[5];
     MYFLT total_signal;
     MYFLT delays[8];
@@ -816,7 +816,7 @@ typedef struct
     Stream *cutoff_stream;
     PyObject *mix;
     Stream *mix_stream;
-    void (*mix_func_ptr)();
+    void (*mix_func_ptr)( void* );
     int modebuffer[4];
     MYFLT firstRefGain;
     MYFLT total_signal[2];
@@ -2215,4 +2215,4 @@ PyTypeObject STRevType =
     0,      /* tp_init */
     0,                         /* tp_alloc */
     STRev_new,                 /* tp_new */
-};
\ No newline at end of file
+};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions