Changeset: 3ff1377af055 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=3ff1377af055
Modified Files:
monetdb5/modules/mal/mosaic.c
monetdb5/modules/mal/mosaic.h
Branch: mosaic
Log Message:
Avoid memory leaks
diffs (100 lines):
diff --git a/monetdb5/modules/mal/mosaic.c b/monetdb5/modules/mal/mosaic.c
--- a/monetdb5/modules/mal/mosaic.c
+++ b/monetdb5/modules/mal/mosaic.c
@@ -386,7 +386,7 @@ MOScompressInternal(Client cntxt, int *r
}
*task->blk = MOSeol;
}
- task->xsize = ((lng)task->dst - (lng)task->hdr) + MosaicHdrSize;
+ task->xsize = ((lng)task->dst - (lng)task->hdr) + (lng)MosaicHdrSize;
task->timer = GDKusec() - task->timer;
//#ifdef _DEBUG_MOSAIC_
MOSdumpTask(cntxt,task);
@@ -573,7 +573,7 @@ MOSgetPartition(Client cntxt, MalBlkPtr
*nrofparts = getVarConstant(mb,getArg(p,7)).val.ival;
} else
if( p->token == ASSIGNsymbol && getArg(p,1) == varid)
- return
MOSgetPartition(cntxt,mb,stk,getArg(p,0),part,nrofparts);
+
MOSgetPartition(cntxt,mb,stk,getArg(p,0),part,nrofparts);
}
}
@@ -635,6 +635,7 @@ MOSsubselect(Client cntxt, MalBlkPtr mb,
// accumulator for the oids
bn = BATnew(TYPE_void, TYPE_oid, BATcount(b), TRANSIENT);
if( bn == NULL){
+ GDKfree(task);
BBPreleaseref(b->batCacheid);
throw(MAL, "mosaic.subselect", RUNTIME_OBJECT_MISSING);
}
@@ -647,6 +648,7 @@ MOSsubselect(Client cntxt, MalBlkPtr mb,
if (cand == NULL){
BBPreleaseref(b->batCacheid);
BBPreleaseref(bn->batCacheid);
+ GDKfree(task);
throw(MAL, "mosaic.subselect", RUNTIME_OBJECT_MISSING);
}
task->cl = (oid*) Tloc(cand, BUNfirst(cand));
@@ -702,6 +704,7 @@ MOSsubselect(Client cntxt, MalBlkPtr mb,
bn->trevsorted = BATcount(bn) <= 1;
bn->tkey = 1;
* (bat *) getArgReference(stk, pci, 0) = bn->batCacheid;
+ GDKfree(task);
BBPkeepref(bn->batCacheid);
return msg;
}
@@ -823,6 +826,7 @@ str MOSthetasubselect(Client cntxt, MalB
bn->tkey = 1;
BBPkeepref(*(int*)getArgReference(stk,pci,0)= bn->batCacheid);
}
+ GDKfree(task);
return msg;
}
@@ -874,6 +878,7 @@ str MOSleftfetchjoin(Client cntxt, MalBl
if( task == NULL){
BBPreleaseref(bl->batCacheid);
BBPreleaseref(br->batCacheid);
+ GDKfree(task);
throw(MAL, "mosaic.subselect", RUNTIME_OBJECT_MISSING);
}
MOSinit(task,br);
@@ -937,6 +942,7 @@ str MOSleftfetchjoin(Client cntxt, MalBl
bn->tkey = 1;
BATderiveProps(bn,0);
BBPkeepref(*ret = bn->batCacheid);
+ GDKfree(task);
return msg;
}
@@ -1062,6 +1068,7 @@ MOSjoin(Client cntxt, MalBlkPtr mb, MalS
BBPkeepref(*(int*)getArgReference(stk,pci,0)= bln->batCacheid);
BBPkeepref(*(int*)getArgReference(stk,pci,1)= brn->batCacheid);
}
+ GDKfree(task);
return msg;
}
diff --git a/monetdb5/modules/mal/mosaic.h b/monetdb5/modules/mal/mosaic.h
--- a/monetdb5/modules/mal/mosaic.h
+++ b/monetdb5/modules/mal/mosaic.h
@@ -129,6 +129,9 @@ float nextafterf(float x, float y);
#define PREVVALUElng(x) ((x) - 1)
#define PREVVALUEwrd(x) ((x) - 1)
#define PREVVALUEoid(x) ((x) - 1)
+#ifdef HAVE_HGE
+#define PREVVALUEhge(x) ((x) - 1)
+#endif
#define PREVVALUEflt(x) nextafterf((x), -GDK_flt_max)
#define PREVVALUEdbl(x) nextafter((x), -GDK_dbl_max)
#define PREVVALUEdate(x) ((x) - 1)
@@ -141,6 +144,9 @@ float nextafterf(float x, float y);
#define NEXTVALUElng(x) ((x) + 1)
#define NEXTVALUEwrd(x) ((x) + 1)
#define NEXTVALUEoid(x) ((x) + 1)
+#ifdef HAVE_HGE
+#define NEXTVALUEhge(x) ((x) + 1)
+#endif
#define NEXTVALUEflt(x) nextafterf((x), GDK_flt_max)
#define NEXTVALUEdbl(x) nextafter((x), GDK_dbl_max)
#define NEXTVALUEdate(x) ((x) + 1)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list