Changeset: 8710a302a577 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8710a302a577
Modified Files:
        monetdb5/optimizer/opt_generator.c
        sql/storage/store.c
Branch: Jul2015
Log Message:

fixed some memory leaks


diffs (57 lines):

diff --git a/monetdb5/optimizer/opt_generator.c 
b/monetdb5/optimizer/opt_generator.c
--- a/monetdb5/optimizer/opt_generator.c
+++ b/monetdb5/optimizer/opt_generator.c
@@ -53,7 +53,7 @@ int
 OPTgeneratorImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr 
pci)
 {
        InstrPtr p,q, *old, *series;
-       int i, k, limit, actions=0;
+       int i, k, limit, slimit, actions=0;
        str m;
        str bteRef = getName("bte",3);
        str shtRef = getName("sht",3);
@@ -69,6 +69,7 @@ OPTgeneratorImplementation(Client cntxt,
        series = (InstrPtr*) GDKzalloc(sizeof(InstrPtr) * mb->vtop);
        old = mb->stmt;
        limit = mb->stop;
+       slimit = mb->ssize;
        if (newMalBlkStmt(mb, mb->ssize) < 0) {
                GDKfree(series);
                return 0;
@@ -76,7 +77,7 @@ OPTgeneratorImplementation(Client cntxt,
 
        for( i=0; i < limit; i++){
                p = old[i];
-               if ( p->token == ENDsymbol){
+               if (p->token == ENDsymbol){
                        pushInstruction(mb,p); 
                        break;
                }
@@ -147,6 +148,9 @@ OPTgeneratorImplementation(Client cntxt,
        }
        for (i++; i < limit; i++)
                pushInstruction(mb, old[i]);
+       for (; i < slimit; i++)
+               if (old[i])
+                       freeInstruction(old[i]);
        GDKfree(old);
        GDKfree(series);
 
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -3112,12 +3112,10 @@ reset_column(sql_trans *tr, sql_column *
                fc->unique = pfc->unique;
                fc->storage_type = NULL;
                if (pfc->storage_type)
-                       fc->storage_type = sa_strdup(tr->sa, pfc->storage_type);
-               if (fc->def) 
-                       sa_strdup(tr->sa, fc->def);
+                       fc->storage_type = pfc->storage_type;
                fc->def = NULL;
                if (pfc->def)
-                       fc->def = sa_strdup(tr->sa, pfc->def);
+                       fc->def = pfc->def;
                fc->base.wtime = fc->base.rtime = 0;
        }
        return LOG_OK;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to