Changeset: dbc6c748bf1f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dbc6c748bf1f
Modified Files:
        monetdb5/mal/mal.h
        monetdb5/mal/mal_instruction.h
        monetdb5/mal/mal_interpreter.c
        monetdb5/modules/mal/manifold.c
        monetdb5/optimizer/opt_pipes.c
Branch: Jun2023
Log Message:

ugly function definition of MALfcn as modern c doesn't like func().


diffs (66 lines):

diff --git a/monetdb5/mal/mal.h b/monetdb5/mal/mal.h
--- a/monetdb5/mal/mal.h
+++ b/monetdb5/mal/mal.h
@@ -105,7 +105,7 @@ mal_export const char *mal_version(void)
 #define VARRETS 2
 
 typedef int malType;
-typedef str (*MALfcn) ();
+typedef str (*MALfcn) (ptr v, ...);
 
 typedef struct SYMDEF {
        struct SYMDEF *peer;            /* where to look next */
diff --git a/monetdb5/mal/mal_instruction.h b/monetdb5/mal/mal_instruction.h
--- a/monetdb5/mal/mal_instruction.h
+++ b/monetdb5/mal/mal_instruction.h
@@ -217,4 +217,5 @@ mal_export void strBeforeCall(ValPtr v, 
 mal_export void strAfterCall(ValPtr v, ValPtr bak);
 mal_export void batBeforeCall(ValPtr v, ValPtr bak);
 mal_export void batAfterCall(ValPtr v, ValPtr bak);
+
 #endif /*  _MAL_INSTR_H */
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -47,7 +47,7 @@ malCommandCall(MalStkPtr stk, InstrPtr p
 
        switch (pci->argc) {
        case 0:
-               ret = (*pci->fcn)();
+               ret = (*(str (*)())pci->fcn)();
                break;
        case 1:
                ret = (*pci->fcn)(
diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c
--- a/monetdb5/modules/mal/manifold.c
+++ b/monetdb5/modules/mal/manifold.c
@@ -59,7 +59,7 @@ typedef struct{
        do {                                                                    
                                                        \
                Type *v = (Type*) mut->args[0].first;                           
                        \
                for (;;) {                                                      
                                                        \
-                       msg = (*mut->pci->fcn)(v, __VA_ARGS__);                 
                        \
+                       msg = (*((str (*)(Type *, ...))mut->pci->fcn))(v, 
__VA_ARGS__);                                         \
                        if (msg) break;                                         
                                                \
                        if (++oo == olimit)                                     
                                                \
                                break;                                          
                                                        \
@@ -107,7 +107,7 @@ typedef struct{
                case TYPE_str:                                                  
                                                \
                default: {                                                      
                                                        \
                        for (;;) {                                              
                                                        \
-                               msg = (*mut->pci->fcn)(&y, __VA_ARGS__);        
                        \
+                           msg = (*((str (*)(str *, ...))mut->pci->fcn))(&y, 
__VA_ARGS__);                                             \
                                if (msg)                                        
                                                        \
                                        break;                                  
                                                        \
                                if (bunfastapp(mut->args[0].b, (void*) y) != 
GDK_SUCCEED) \
diff --git a/monetdb5/optimizer/opt_pipes.c b/monetdb5/optimizer/opt_pipes.c
--- a/monetdb5/optimizer/opt_pipes.c
+++ b/monetdb5/optimizer/opt_pipes.c
@@ -454,7 +454,7 @@ addOptimizerPipe(Client cntxt, MalBlkPtr
                p = newFcnCall(mb, optimizerRef, pipes[i].def[j]);
                if (p == NULL)
                        throw(MAL, "optimizer.addOptimizerPipe", 
SQLSTATE(HY013) MAL_MALLOC_FAIL);
-               p->fcn = OPTwrapper;
+               p->fcn = (MALfcn)OPTwrapper;
                p->token = PATcall;
                pushInstruction(mb, p);
        }
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to