Changeset: a1d41172ba94 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a1d41172ba94
Modified Files:
gdk/gdk_value.c
monetdb5/modules/mal/calc.c
sql/backends/monet5/mal_backend.c
sql/backends/monet5/rel_bin.c
sql/backends/monet5/sql_scenario.c
sql/backends/monet5/vaults/fits/fits.c
sql/backends/monet5/vaults/netcdf/netcdf.c
Branch: Jul2017
Log Message:
Resolved some FIXME comments.
diffs (158 lines):
diff --git a/gdk/gdk_value.c b/gdk/gdk_value.c
--- a/gdk/gdk_value.c
+++ b/gdk/gdk_value.c
@@ -142,9 +142,10 @@ VALcopy(ValPtr d, const ValRecord *s)
{
if (!ATOMextern(s->vtype)) {
*d = *s;
- } else if (s->val.pval == 0) {
- // FIXME unchecked_malloc ATOMnil can return NULL
+ } else if (s->val.pval == NULL) {
d->val.pval = ATOMnil(s->vtype);
+ if (d->val.pval == NULL)
+ return NULL;
d->vtype = s->vtype;
} else if (s->vtype == TYPE_str) {
d->vtype = TYPE_str;
diff --git a/monetdb5/modules/mal/calc.c b/monetdb5/modules/mal/calc.c
--- a/monetdb5/modules/mal/calc.c
+++ b/monetdb5/modules/mal/calc.c
@@ -632,8 +632,9 @@ CALCswitchbit(Client cntxt, MalBlkPtr mb
p = getArgReference(stk, pci, 3);
}
if (ATOMextern(t1)) {
- // FIXME unchecked_malloc ATOMdup could return NULL
*(ptr **) retval = ATOMdup(t1, *(ptr**)p);
+ if (*(ptr **) retval == NULL)
+ throw(MAL, "ifthenelse", MAL_MALLOC_FAIL);
} else if (t1 == TYPE_void) {
memcpy(retval, p, sizeof(oid));
} else {
diff --git a/sql/backends/monet5/mal_backend.c
b/sql/backends/monet5/mal_backend.c
--- a/sql/backends/monet5/mal_backend.c
+++ b/sql/backends/monet5/mal_backend.c
@@ -27,7 +27,6 @@ backend_reset(backend *b)
backend *
backend_create(mvc *m, Client c)
{
- // FIXME unchecked_malloc MNEW can return NULL
backend *b = MNEW(backend);
if( b== NULL)
diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c
--- a/sql/backends/monet5/rel_bin.c
+++ b/sql/backends/monet5/rel_bin.c
@@ -1039,7 +1039,6 @@ rel_parse_value(backend *be, char *query
m->caching = 0;
m->emode = emode;
- // FIXME unchecked_malloc GDKmalloc can return NULL
b = (buffer*)GDKmalloc(sizeof(buffer));
if (b == 0)
return sql_error(m, 02, MAL_MALLOC_FAIL);
diff --git a/sql/backends/monet5/sql_scenario.c
b/sql/backends/monet5/sql_scenario.c
--- a/sql/backends/monet5/sql_scenario.c
+++ b/sql/backends/monet5/sql_scenario.c
@@ -442,11 +442,10 @@ SQLinitClient(Client c)
* based on the mandatory scripts to be executed.
*/
if (sqlinit) { /* add sqlinit to the fdin stack */
- // FIXME unchecked_malloc GDKmalloc can return NULL
buffer *b = (buffer *) GDKmalloc(sizeof(buffer));
size_t len = strlen(sqlinit);
bstream *fdin;
-
+
if( b == NULL)
throw(SQL,"sql.initClient",MAL_MALLOC_FAIL);
diff --git a/sql/backends/monet5/vaults/fits/fits.c
b/sql/backends/monet5/vaults/fits/fits.c
--- a/sql/backends/monet5/vaults/fits/fits.c
+++ b/sql/backends/monet5/vaults/fits/fits.c
@@ -205,17 +205,19 @@ str FITSexportTable(Client cntxt, MalBlk
tbl = mvc_bind_table(m, sch, tname);
if (tbl == NULL) {
- msg = createException (MAL, "fits.exporttable", "Table %s is
missing.\n", tname);
- return msg;
+ throw(MAL, "fits.exporttable", "Table %s is missing.\n", tname);
}
set = (*tbl).columns.set;
columns = list_length(set);
- // FIXME unchecked_malloc GDKmalloc can return NULL
colname = (str *) GDKmalloc(columns * sizeof(str));
- // FIXME unchecked_malloc GDKmalloc can return NULL
tform = (str *) GDKmalloc(columns * sizeof(str));
+ if (colname == NULL || tform == NULL) {
+ GDKfree(colname);
+ GDKfree(tform);
+ throw(MAL, "fits.exporttable", MAL_MALLOC_FAIL);
+ }
/* fprintf(stderr,"Number of columns: %d\n", columns);*/
diff --git a/sql/backends/monet5/vaults/netcdf/netcdf.c
b/sql/backends/monet5/vaults/netcdf/netcdf.c
--- a/sql/backends/monet5/vaults/netcdf/netcdf.c
+++ b/sql/backends/monet5/vaults/netcdf/netcdf.c
@@ -612,9 +612,14 @@ NCDFloadVar(bat **dim, bat *v, int ncid,
res = NULL;
/* Manually create dimensions with range [0:1:dlen[i]] */
- // FIXME unchecked_malloc GDKmalloc can return NULL
val_rep = (size_t *)GDKmalloc(sizeof(size_t) * vndims);
grp_rep = (size_t *)GDKmalloc(sizeof(size_t) * vndims);
+ if (val_rep == NULL || grp_rep == NULL) {
+ GDKfree(dlen);
+ GDKfree(val_rep);
+ GDKfree(grp_rep);
+ throw(MAL, "netcdf.loadvar", MAL_MALLOC_FAIL);
+ }
/* compute the repetition factor inside of the series (val_rep) and of
series (grp_rep) */
for (i = 0; i < vndims; i++) {
@@ -716,6 +721,8 @@ NCDFimportVariable(Client cntxt, MalBlkP
/* compose 'create table' statement in the buffer */
dname = (char **) GDKzalloc( sizeof(char *) * vndims);
+ if (dname == NULL)
+ throw(MAL, "netcdf.importvar", MAL_MALLOC_FAIL);
for (i = 0; i < vndims; i++)
dname[i] = (char *) GDKzalloc(NC_MAX_NAME + 1);
@@ -724,10 +731,12 @@ NCDFimportVariable(Client cntxt, MalBlkP
j = snprintf(buf, BUFSIZ,"create table %s.%s( ", sch->base.name, aname);
for (i = 0; i < vndims; i++){
- if ((retval = nc_inq_dim(ncid, vdims[i], dname[i], &dlen)))
- return createException(MAL, "netcdf.importvar",
- "Cannot read
dimension %d : %s",
- vdims[i],
nc_strerror(retval));
+ if ((retval = nc_inq_dim(ncid, vdims[i], dname[i], &dlen))) {
+ GDKfree(dname);
+ throw(MAL, "netcdf.importvar",
+ "Cannot read dimension %d : %s",
+ vdims[i], nc_strerror(retval));
+ }
if ( dlen <= (int) GDK_bte_max )
dimtype = "TINYINT";
@@ -748,12 +757,15 @@ NCDFimportVariable(Client cntxt, MalBlkP
return msg;
/* load variable data */
- // FIXME unchecked_malloc GDKmalloc can return NULL
dim_bids = (bat *)GDKmalloc(sizeof(bat) * vndims);
+ if (dim_bids == NULL)
+ throw(MAL, "netcdf.importvar", MAL_MALLOC_FAIL);
msg = NCDFloadVar(&dim_bids, &vbatid, ncid, varid, vtype, vndims,
vdims);
- if ( msg != MAL_SUCCEED )
+ if ( msg != MAL_SUCCEED ) {
+ GDKfree(dim_bids);
return msg;
+ }
/* associate columns in the table with loaded variable data */
aname_sys = toLower(aname);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list