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

Reply via email to