Changeset: ded6709ed7c5 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ded6709ed7c5 Modified Files: sql/server/rel_exp.c sql/server/rel_optimizer.c sql/storage/bat/bat_logger.c sql/storage/store.c Branch: default Log Message:
Use GDK allocation macros whenever possible diffs (231 lines): diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -1166,10 +1166,10 @@ exp_match_list( list *l, list *r) if (!l || !r) return l == r; - if (list_length(l) != list_length(r)) + if (list_length(l) != list_length(r) || list_length(l) == 0 || list_length(r) == 0) return 0; - lu = calloc(list_length(l), sizeof(char)); - ru = calloc(list_length(r), sizeof(char)); + lu = GDKzalloc(list_length(l) * sizeof(char)); + ru = GDKzalloc(list_length(r) * sizeof(char)); for (n = l->h, lc = 0; n; n = n->next, lc++) { sql_exp *le = n->data; @@ -1189,8 +1189,8 @@ exp_match_list( list *l, list *r) for (n = r->h, rc = 0; n && match; n = n->next, rc++) if (!ru[rc]) match = 0; - free(lu); - free(ru); + GDKfree(lu); + GDKfree(ru); return match; } diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -624,27 +624,23 @@ exps_count(list *exps) static list * order_join_expressions(mvc *sql, list *dje, list *rels) { - list *res; + list *res = sa_list(sql->sa); node *n = NULL; int i, *keys, cnt = list_length(dje); void **data; int debug = mvc_debug_on(sql, 16); - keys = malloc(cnt*sizeof(int)); - data = malloc(cnt*sizeof(void *)); + if (cnt == 0) + return res; + + keys = GDKmalloc(cnt*sizeof(int)); + data = GDKmalloc(cnt*sizeof(void *)); if (keys == NULL || data == NULL) { - if (keys) - free(keys); - if (data) - free(data); + GDKfree(keys); + GDKfree(data); return NULL; } - res = sa_list(sql->sa); - if (res == NULL) { - free(keys); - free(data); - return NULL; - } + for (n = dje->h, i = 0; n; n = n->next, i++) { sql_exp *e = n->data; @@ -666,8 +662,8 @@ order_join_expressions(mvc *sql, list *d for(i=0; i<cnt; i++) { list_append(res, data[i]); } - free(keys); - free(data); + GDKfree(keys); + GDKfree(data); return res; } @@ -3612,6 +3608,9 @@ exps_cse( mvc *sql, list *oexps, list *l char *lu, *ru; int lc = 0, rc = 0, match = 0, res = 0; + if (list_length(l) == 0 || list_length(r) == 0) + return 0; + /* first recusive exps_cse */ nexps = new_exp_list(sql->sa); for (n = l->h; n; n = n->next) { @@ -3651,8 +3650,8 @@ exps_cse( mvc *sql, list *oexps, list *l } } - lu = calloc(list_length(l), sizeof(char)); - ru = calloc(list_length(r), sizeof(char)); + lu = GDKzalloc(list_length(l) * sizeof(char)); + ru = GDKzalloc(list_length(r) * sizeof(char)); for (n = l->h, lc = 0; n; n = n->next, lc++) { sql_exp *le = n->data; @@ -3689,8 +3688,8 @@ exps_cse( mvc *sql, list *oexps, list *l append(oexps, exp_or(sql->sa, list_dup(l, (fdup)NULL), list_dup(r, (fdup)NULL), 0)); } - free(lu); - free(ru); + GDKfree(lu); + GDKfree(ru); return res; } @@ -5581,12 +5580,12 @@ rel_groupby_order(int *changes, mvc *sql (void)*changes; if (is_groupby(rel->op) && list_length(gbe) > 1 && list_length(gbe)<9) { node *n; - int i, *scores = calloc(list_length(gbe), sizeof(int)); + int i, *scores = GDKzalloc(list_length(gbe) * sizeof(int)); for (i = 0, n = gbe->h; n; i++, n = n->next) scores[i] = score_gbe(sql, rel, n->data); rel->r = list_keysort(gbe, scores, (fdup)NULL); - free(scores); + GDKfree(scores); } return rel; } @@ -5602,24 +5601,21 @@ rel_reduce_groupby_exps(int *changes, mv { list *gbe = rel->r; - if (is_groupby(rel->op) && rel->r && !rel_is_ref(rel)) { + if (is_groupby(rel->op) && rel->r && !rel_is_ref(rel) && list_length(gbe)) { node *n, *m; - int8_t *scores = malloc(list_length(gbe)); + int8_t *scores = GDKmalloc(list_length(gbe)); int k, j, i; sql_column *c; sql_table **tbls; sql_rel **bts, *bt = NULL; gbe = rel->r; - tbls = (sql_table**)malloc(sizeof(sql_table*)*list_length(gbe)); - bts = (sql_rel**)malloc(sizeof(sql_rel*)*list_length(gbe)); + tbls = (sql_table**)GDKmalloc(sizeof(sql_table*)*list_length(gbe)); + bts = (sql_rel**)GDKmalloc(sizeof(sql_rel*)*list_length(gbe)); if (scores == NULL || tbls == NULL || bts == NULL) { - if (scores) - free(scores); - if (tbls) - free(tbls); - if (bts) - free(bts); + GDKfree(scores); + GDKfree(tbls); + GDKfree(bts); return NULL; } for (k = 0, i = 0, n = gbe->h; n; n = n->next, k++) { @@ -5727,17 +5723,17 @@ rel_reduce_groupby_exps(int *changes, mv rel->exps = nexps; /* only one reduction at a time */ *changes = 1; - free(bts); - free(tbls); - free(scores); + GDKfree(bts); + GDKfree(tbls); + GDKfree(scores); return rel; } gbe = rel->r; } } - free(bts); - free(tbls); - free(scores); + GDKfree(bts); + GDKfree(tbls); + GDKfree(scores); } /* remove constants from group by list */ if (is_groupby(rel->op) && rel->r && !rel_is_ref(rel)) { @@ -7263,13 +7259,13 @@ rel_select_order(int *changes, mvc *sql, { (void)changes; if (is_select(rel->op) && rel->exps && list_length(rel->exps)>1) { - int i, *scores = calloc(list_length(rel->exps), sizeof(int)); + int i, *scores = GDKzalloc(list_length(rel->exps) * sizeof(int)); node *n; for (i = 0, n = rel->exps->h; n; i++, n = n->next) scores[i] = score_se(sql, rel, n->data); rel->exps = list_keysort(rel->exps, scores, (fdup)NULL); - free(scores); + GDKfree(scores); } return rel; } diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c --- a/sql/storage/bat/bat_logger.c +++ b/sql/storage/bat/bat_logger.c @@ -921,7 +921,7 @@ snapshot_immediate_copy_file(stream *pla buf = GDKmalloc(bufsize); if (!buf) { - GDKerror("malloc failed"); + GDKerror("GDKmalloc failed"); goto end; } diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2466,7 +2466,7 @@ tar_copy_stream(stream *tarfile, const c assert( (bufsize % TAR_BLOCK_SIZE) == 0); assert(bufsize >= TAR_BLOCK_SIZE); - buf = malloc(bufsize); + buf = GDKmalloc(bufsize); if (!buf) { GDKerror("could not allocate buffer"); goto end; @@ -2493,7 +2493,7 @@ tar_copy_stream(stream *tarfile, const c ret = GDK_SUCCEED; end: if (buf) - free(buf); + GDKfree(buf); return ret; } _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list