Changeset: b83704bd74dd for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b83704bd74dd
Modified Files:
        clients/Tests/exports.stable.out
        gdk/gdk.h
        gdk/gdk_align.c
        gdk/gdk_batop.c
        gdk/gdk_delta.c
        gdk/gdk_private.h
        gdk/gdk_setop.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/txtsim.c
Branch: default
Log Message:

Various cleanup.
Move some macros from gdk.h to gdk_private.h.
Turn some functions into void functions since they always returned 0 anyway.
Remove function that doesn't do anything.
Replace getArgValue by VALptr.


diffs (truncated from 374 to 300 lines):

diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -6,7 +6,7 @@ stdout of test 'exports` in directory 'c
 # 15:10:42 >  
 
 # gdk
-int ALIGNsetH(BAT *b1, BAT *b2);
+void ALIGNsetH(BAT *b1, BAT *b2);
 int ALIGNsynced(BAT *b1, BAT *b2);
 int ATOMallocate(const char *nme);
 int ATOMcmp(int id, const void *v_1, const void *v_2);
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -657,46 +657,8 @@ typedef uint64_t BUN8type;
  */
 typedef enum { GDK_FAIL, GDK_SUCCEED } gdk_return;
 
-#define ERRORcheck(tst,        msg, err) do if (tst) { GDKerror(msg); return 
(err); } while (0)
-#define BATcheck(tst,  msg, err)                                       \
-       do {                                                            \
-               if ((tst) == NULL) {                                    \
-                       if (strchr((msg), ':'))                         \
-                               GDKerror("%s.\n", (msg));               \
-                       else                                            \
-                               GDKerror("%s: BAT required.\n", (msg)); \
-                       return err;                                     \
-               }                                                       \
-       } while (0)
-
 #define ATOMextern(t)  (ATOMstorage(t) >= TYPE_str)
 
-#define TYPEcastable(t1,t2)    (ATOMtype(t1)==ATOMtype(t2))
-#define TYPEequal(t1,t2)       (ATOMtype(t1)==ATOMtype(t2))
-#define TYPEcomp(t1,t2)        
(ATOMstorage(ATOMtype(t1))==ATOMstorage(ATOMtype(t2)))
-#define TYPEerror(t1,t2)       (!TYPEcomp(t1,t2))
-#define BATcompatible(P1,P2,E)                                         \
-       do {                                                            \
-               ERRORcheck((P1) == NULL, "BATcompatible: BAT required\n", E); \
-               ERRORcheck((P2) == NULL, "BATcompatible: BAT required\n", E); \
-               if (TYPEerror(BAThtype(P1),BAThtype(P2)) ||             \
-                   TYPEerror(BATttype(P1),BATttype(P2)))               \
-               {                                                       \
-                       GDKerror("Incompatible operands.\n");           \
-                       return (E);                                     \
-               }                                                       \
-               if (BAThtype(P1) != BAThtype(P2) &&                     \
-                   ATOMtype((P1)->htype) != ATOMtype((P2)->htype)) {   \
-                       CHECKDEBUG fprintf(stderr,"#Interpreting %s as %s.\n", \
-                               ATOMname(BAThtype(P2)), 
ATOMname(BAThtype(P1))); \
-               }                                                       \
-               if (BATttype(P1) != BATttype(P2) &&                     \
-                   ATOMtype((P1)->ttype) != ATOMtype((P2)->ttype)) {   \
-                       CHECKDEBUG fprintf(stderr,"#Interpreting %s as %s.\n", \
-                               ATOMname(BATttype(P2)), 
ATOMname(BATttype(P1))); \
-               }                                                       \
-       } while (0)
-
 /* Heap storage modes */
 typedef enum {
        STORE_MEM = 0,          /* load into GDKmalloced memory */
@@ -2893,7 +2855,7 @@ gdk_export BAT *VIEWcombine(BAT *b);
 gdk_export void VIEWbounds(BAT *b, BAT *view, BUN l, BUN h);
 
 /* low level functions */
-gdk_export int ALIGNsetH(BAT *b1, BAT *b2);
+gdk_export void ALIGNsetH(BAT *b1, BAT *b2);
 
 #define ALIGNset(x,y)  do {ALIGNsetH(x,y);ALIGNsetT(x,y);} while (0)
 #define ALIGNsetT(x,y) ALIGNsetH(BATmirror(x),BATmirror(y))
diff --git a/gdk/gdk_align.c b/gdk/gdk_align.c
--- a/gdk/gdk_align.c
+++ b/gdk/gdk_align.c
@@ -86,33 +86,26 @@
 #include "gdk.h"
 #include "gdk_private.h"
 
-int
+void
 ALIGNcommit(BAT *b)
 {
-       BATcheck(b, "ALIGNcommit", 0);
+       if (b == NULL)
+               return;
        if (!b->halign) {
                b->halign = OIDnew(1);
        }
        if (!b->talign) {
                b->talign = OIDnew(1);
        }
-       return 0;
 }
 
-int
-ALIGNundo(BAT *b)
-{
-       BATcheck(b, "ALIGNundo", 0);
-       return 0;
-}
-
-int
+void
 ALIGNsetH(BAT *b1, BAT *b2)
 {
        ssize_t diff;
 
-       BATcheck(b1, "ALIGNsetH: bat 1 required", 0);
-       BATcheck(b2, "ALIGNsetH: bat 2 required", 0);
+       if (b1 == NULL || b2 == NULL)
+               return;
 
        diff = (ssize_t) (BUNfirst(b1) - BUNfirst(b2));
        if (b2->halign == 0) {
@@ -142,8 +135,6 @@ ALIGNsetH(BAT *b1, BAT *b2)
        b1->H->nokey[1] = (BUN) (b2->H->nokey[1] + diff);
        b1->H->nosorted = (BUN) (b2->H->nosorted + diff);
        b1->H->nodense = (BUN) (b2->H->nodense + diff);
-
-       return 0;
 }
 
 /*
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -415,7 +415,7 @@ BATins(BAT *b, BAT *n, bit force)
                return GDK_FAIL;
        }
        ALIGNins(b, "BATins", force, GDK_FAIL);
-       BATcompatible(b, n, GDK_FAIL);
+       BATcompatible(b, n, GDK_FAIL, "BATins");
 
        countonly = (b->htype == TYPE_void && b->ttype == TYPE_void);
 
@@ -647,7 +647,7 @@ BATappend(BAT *b, BAT *n, bit force)
                return GDK_FAIL;
        }
        ALIGNapp(b, "BATappend", force, GDK_FAIL);
-       BATcompatible(b, n, GDK_FAIL);
+       BATcompatible(b, n, GDK_FAIL, "BATappend");
 
        if (BUNlast(b) + BATcount(n) > BUN_MAX) {
                GDKerror("BATappend: combined BATs too large\n");
@@ -897,9 +897,6 @@ BATappend(BAT *b, BAT *n, bit force)
                        GDKerror("%s: Incompatible types %s and %s.\n", \
                                 func, ATOMname(t2), ATOMname(t1));     \
                        return GDK_FAIL;                                \
-               } else if (!TYPEcomp(t1, t2)) {                         \
-                       CHECKDEBUG fprintf(stderr,"#Interpreting %s as %s.\n", \
-                               ATOMname(t2), ATOMname(t1));            \
                }                                                       \
        } while (0)
 
@@ -930,7 +927,7 @@ BATreplace(BAT *b, BAT *n, bit force)
        if (b == NULL || n == NULL || BATcount(n) == 0) {
                return GDK_SUCCEED;
        }
-       BATcompatible(b, n, GDK_FAIL);
+       BATcompatible(b, n, GDK_FAIL, "BATreplace");
        updateloop(b, n, BUNreplace_force);
 
        return GDK_SUCCEED;
diff --git a/gdk/gdk_delta.c b/gdk/gdk_delta.c
--- a/gdk/gdk_delta.c
+++ b/gdk/gdk_delta.c
@@ -136,7 +136,6 @@ BATundo(BAT *b)
        if (b == NULL)
                return;
        DELTADEBUG fprintf(stderr, "#BATundo %s \n", BATgetId(b));
-       ALIGNundo(b);
        if (b->batDirtyflushed) {
                b->batDirtydesc = b->H->heap.dirty = b->T->heap.dirty = 1;
        } else {
diff --git a/gdk/gdk_private.h b/gdk/gdk_private.h
--- a/gdk/gdk_private.h
+++ b/gdk/gdk_private.h
@@ -44,9 +44,7 @@ struct BATstore {
        BATrec S;               /* the BAT properties */
 };
 
-int ALIGNcommit(BAT *b)
-       __attribute__((__visibility__("hidden")));
-int ALIGNundo(BAT *b)
+void ALIGNcommit(BAT *b)
        __attribute__((__visibility__("hidden")));
 int ATOMheap(int id, Heap *hp, size_t cap)
        __attribute__((__visibility__("hidden")));
@@ -276,6 +274,46 @@ extern MT_Lock MT_system_lock;
 
 #define BBPdirty(x)    (BBP_dirty=(x))
 
+#define BATcheck(tst, msg, err)                                                
\
+       do {                                                            \
+               if ((tst) == NULL) {                                    \
+                       if (strchr((msg), ':'))                         \
+                               GDKerror("%s.\n", (msg));               \
+                       else                                            \
+                               GDKerror("%s: BAT required.\n", (msg)); \
+                       return (err);                                   \
+               }                                                       \
+       } while (0)
+#define ERRORcheck(tst,        msg, err)               \
+       do {                                    \
+               if (tst) {                      \
+                       GDKerror(msg);          \
+                       return (err);           \
+               }                               \
+       } while (0)
+#define BATcompatible(P1,P2,E,F)                                       \
+       do {                                                            \
+               ERRORcheck((P1) == NULL, F ": BAT required\n", E);      \
+               ERRORcheck((P2) == NULL, F ": BAT required\n", E);      \
+               if (TYPEerror(BAThtype(P1),BAThtype(P2)) ||             \
+                   TYPEerror(BATttype(P1),BATttype(P2)))               \
+               {                                                       \
+                       GDKerror("Incompatible operands.\n");           \
+                       return (E);                                     \
+               }                                                       \
+               if (BAThtype(P1) != BAThtype(P2) &&                     \
+                   ATOMtype((P1)->htype) != ATOMtype((P2)->htype)) {   \
+                       CHECKDEBUG fprintf(stderr,"#Interpreting %s as %s.\n", \
+                               ATOMname(BAThtype(P2)), 
ATOMname(BAThtype(P1))); \
+               }                                                       \
+               if (BATttype(P1) != BATttype(P2) &&                     \
+                   ATOMtype((P1)->ttype) != ATOMtype((P2)->ttype)) {   \
+                       CHECKDEBUG fprintf(stderr,"#Interpreting %s as %s.\n", \
+                               ATOMname(BATttype(P2)), 
ATOMname(BATttype(P1))); \
+               }                                                       \
+       } while (0)
+#define TYPEerror(t1,t2)       (ATOMstorage(ATOMtype(t1)) != 
ATOMstorage(ATOMtype(t2)))
+
 #define GDKswapLock(x)  GDKbatLock[(x)&BBP_BATMASK].swap
 #define GDKhashLock(x)  GDKbatLock[(x)&BBP_BATMASK].hash
 #define GDKimprintsLock(x)  GDKbatLock[(x)&BBP_BATMASK].imprints
diff --git a/gdk/gdk_setop.c b/gdk/gdk_setop.c
--- a/gdk/gdk_setop.c
+++ b/gdk/gdk_setop.c
@@ -547,7 +547,7 @@ BATkunion(BAT *l, BAT *r)
        BATiter li, ri;
        int ht, tt;
 
-       BATcompatible(l, r, NULL);
+       BATcompatible(l, r, NULL, "BATkunion");
        if (BATcount(l) == 0) {
                b = l;
                l = r;
diff --git a/monetdb5/modules/mal/mal_io.c b/monetdb5/modules/mal/mal_io.c
--- a/monetdb5/modules/mal/mal_io.c
+++ b/monetdb5/modules/mal/mal_io.c
@@ -469,37 +469,9 @@ IOprintf_(str *res, str format, ...)
        return MAL_SUCCEED;
 }
 
-static ptr
-getArgValue(MalStkPtr stk, InstrPtr pci, int k){
-       int j=0;
-       ValRecord *v;
-       ptr val = NULL;
+#define getArgValue(s,p,k) VALptr(&(s)->stk[(p)->argv[k]])
 
-       j = pci->argv[k];
-       v= &stk->stk[j];
-       switch(ATOMstorage(v->vtype)){
-       case TYPE_void: val= (ptr) & v->val.ival; break;
-       case TYPE_bit: val= (ptr) & v->val.btval; break;
-       case TYPE_sht: val= (ptr) & v->val.shval; break;
-       case TYPE_bat: val= (ptr) & v->val.bval; break;
-       case TYPE_int: val= (ptr) & v->val.ival; break;
-       case TYPE_wrd: val= (ptr) & v->val.wval; break;
-       case TYPE_bte: val= (ptr) & v->val.btval; break;
-       case TYPE_oid: val= (ptr) & v->val.oval; break;
-       case TYPE_flt: val= (ptr) & v->val.fval; break;
-       case TYPE_dbl: val= (ptr) & v->val.dval; break;
-       case TYPE_lng: val= (ptr) & v->val.lval; break;
-#ifdef HAVE_HGE
-       case TYPE_hge: val= (ptr) & v->val.hval; break;
-#endif
-       case TYPE_str: val= (ptr) v->val.sval; break;/*!!*/
-       case TYPE_ptr:
-       default:
-                val= (ptr) v->val.pval; break;/*!!*/
-       }
-       return val;
-} 
-#define G(X) , getArgValue(stk,pci,X), getArgType(mb,pci,X)
+#define G(X) getArgValue(stk,pci,X), getArgType(mb,pci,X)
 
 str
 IOprintf(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
@@ -511,23 +483,23 @@ IOprintf(Client cntxt, MalBlkPtr mb, Mal
        (void) cntxt;
        (void) mb;
        switch( pci->argc){
-       case 2: msg= IOprintf_(&fmt2,*fmt );
+       case 2: msg= IOprintf_(&fmt2,*fmt);
                        break;
-       case 3: msg= IOprintf_(&fmt2,*fmt G(2));
+       case 3: msg= IOprintf_(&fmt2,*fmt,G(2));
                break;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to