Changeset: 090f0e9da792 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/090f0e9da792
Modified Files:
        gdk/gdk_bbp.c
        gdk/gdk_calc_addsub.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_logger_old.c
Branch: Sep2022
Log Message:

More fixes.


diffs (116 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -744,7 +744,7 @@ BBPreadBBPline(FILE *fp, unsigned bbpver
        }
        nread += n;
 
-       if (nread >= sizeof(buf) || (buf[nread] != '\n' && buf[nread] != ' ')) {
+       if (nread >= (int) sizeof(buf) || (buf[nread] != '\n' && buf[nread] != 
' ')) {
                TRC_CRITICAL(GDK, "invalid format for BBP.dir on line %d", 
*lineno);
                return -1;
        }
diff --git a/gdk/gdk_calc_addsub.c b/gdk/gdk_calc_addsub.c
--- a/gdk/gdk_calc_addsub.c
+++ b/gdk/gdk_calc_addsub.c
@@ -1427,7 +1427,8 @@ add_typeswitchloop(const void *lft, int 
 }
 
 static BUN
-addstr_loop(BAT *b1, const char *l, BAT *b2, const char *r, BAT *bn, BATiter 
b1i, BATiter b2i,
+addstr_loop(BAT *b1, const char *l, BAT *b2, const char *r, BAT *bn,
+           BATiter *b1i, BATiter *b2i,
            struct canditer *restrict ci1, struct canditer *restrict ci2)
 {
        BUN nils = 0, ncand = ci1->ncand;
@@ -1452,9 +1453,9 @@ addstr_loop(BAT *b1, const char *l, BAT 
                oid x1 = canditer_next(ci1) - candoff1;
                oid x2 = canditer_next(ci2) - candoff2;
                if (b1)
-                       l = BUNtvar(b1i, x1);
+                       l = BUNtvar(*b1i, x1);
                if (b2)
-                       r = BUNtvar(b2i, x2);
+                       r = BUNtvar(*b2i, x2);
                if (strNil(l) || strNil(r)) {
                        nils++;
                        if (tfastins_nocheckVAR(bn, i, str_nil) != GDK_SUCCEED)
@@ -1514,7 +1515,7 @@ BATcalcadd(BAT *b1, BAT *b2, BAT *s1, BA
        BATiter b1i = bat_iterator(b1);
        BATiter b2i = bat_iterator(b2);
        if (b1i.type == TYPE_str && b2i.type == TYPE_str && tp == TYPE_str) {
-               nils = addstr_loop(b1, NULL, b2, NULL, bn, b1i, b2i, &ci1, 
&ci2);
+               nils = addstr_loop(b1, NULL, b2, NULL, bn, &b1i, &b2i, &ci1, 
&ci2);
        } else {
                nils = add_typeswitchloop(b1i.base, b1i.type, true,
                                          b2i.base, b2i.type, true,
@@ -1576,7 +1577,7 @@ BATcalcaddcst(BAT *b, const ValRecord *v
 
        BATiter bi = bat_iterator(b);
        if (bi.type == TYPE_str && v->vtype == TYPE_str && tp == TYPE_str) {
-               nils = addstr_loop(b, NULL, NULL, v->val.sval, bn, bi, 
(BATiter){0}, &ci, &(struct canditer){.tpe=cand_dense, .ncand=ci.ncand});
+               nils = addstr_loop(b, NULL, NULL, v->val.sval, bn, &bi, 
&(BATiter){0}, &ci, &(struct canditer){.tpe=cand_dense, .ncand=ci.ncand});
        } else {
                nils = add_typeswitchloop(bi.base, bi.type, true,
                                          VALptr(v), v->vtype, false,
@@ -1635,7 +1636,7 @@ BATcalccstadd(const ValRecord *v, BAT *b
 
        BATiter bi = bat_iterator(b);
        if (bi.type == TYPE_str && v->vtype == TYPE_str && tp == TYPE_str) {
-               nils = addstr_loop(NULL, v->val.sval, b, NULL, bn, 
(BATiter){0}, bi, &(struct canditer){.tpe=cand_dense, .ncand=ci.ncand}, &ci);
+               nils = addstr_loop(NULL, v->val.sval, b, NULL, bn, 
&(BATiter){0}, &bi, &(struct canditer){.tpe=cand_dense, .ncand=ci.ncand}, &ci);
        } else {
                nils = add_typeswitchloop(VALptr(v), v->vtype, false,
                                          bi.base, bi.type, true,
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -1827,6 +1827,9 @@ mergejoin(BAT **r1p, BAT **r2p, BAT *l, 
                assert(ri.vh == NULL);
                lvars = rvars = NULL;
        }
+       /* if the var pointer is not NULL, then so is the val pointer */
+       assert(lvars == NULL || lvals != NULL);
+       assert(rvars == NULL || rvals != NULL);
 
        if (not_in && rci->ncand > 0 && !ri.nonil &&
            ((BATtvoid(l) && l->tseqbase == oid_nil) ||
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1223,8 +1223,11 @@ log_read_transaction(logger *lg)
                                        cands = COLnew(0, TYPE_void, 0, 
TRANSIENT);
                                        if (!cands)
                                                err = LOG_ERR;
-                               }
-                               else {
+                               } else if (cands == NULL) {
+                                       /* should have gone through the
+                                        * above option earlier */
+                                       err = LOG_ERR;
+                               } else {
                                        // END OF LOG_BAT_GROUP
                                        BBPunfix(cands->batCacheid);
                                        cands = NULL;
@@ -2653,7 +2656,9 @@ log_bat_transient(logger *lg, log_id id)
        if (lg->debug & 1)
                fprintf(stderr, "#Logged destroyed bat (%d) %d\n", id,
                                bid);
-       lg->end += BATcount(BBPquickdesc(bid));
+       BAT *b = BBPquickdesc(bid);
+       assert(b);
+       lg->end += BATcount(b);
        gdk_return r =  log_del_bat(lg, bid);
        log_unlock(lg);
        if (r != GDK_SUCCEED)
diff --git a/gdk/gdk_logger_old.c b/gdk/gdk_logger_old.c
--- a/gdk/gdk_logger_old.c
+++ b/gdk/gdk_logger_old.c
@@ -295,6 +295,7 @@ old_logger_find_bat(old_logger *lg, cons
                BATiter cni = bat_iterator_nolock(lg->catalog_nme);
                BUN p;
 
+               assert(name != NULL);
                if (BAThash(lg->catalog_nme) == GDK_SUCCEED) {
                        MT_rwlock_rdlock(&cni.b->thashlock);
                        HASHloop_str(cni, cni.b->thash, p, name) {
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to