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