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]