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

Reply via email to