Changeset: b392ac773ded for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b392ac773ded
Modified Files:
        monetdb5/optimizer/opt_deadcode.c
        monetdb5/optimizer/opt_recycler.c
        monetdb5/optimizer/opt_remap.c
Branch: Jun2016
Log Message:

more leak fixing.


diffs (75 lines):

diff --git a/monetdb5/optimizer/opt_deadcode.c 
b/monetdb5/optimizer/opt_deadcode.c
--- a/monetdb5/optimizer/opt_deadcode.c
+++ b/monetdb5/optimizer/opt_deadcode.c
@@ -74,7 +74,7 @@ OPTdeadcodeImplementation(Client cntxt, 
        
        // Now we can simply copy the intructions and discard useless ones.
        pushInstruction(mb, old[0]);
-       for (i = 1; i < limit; i++) 
+       for (i = 1; i < limit; i++) {
                if ((p = old[i]) != NULL) {
                        if( p->token == ENDsymbol){
                                pushInstruction(mb,p);
@@ -96,6 +96,7 @@ OPTdeadcodeImplementation(Client cntxt, 
                                freeInstruction(p);
                        actions += se > 0;
                }
+       }
        for(; i<slimit; i++)
                if( old[i])
                        freeInstruction(old[i]);
diff --git a/monetdb5/optimizer/opt_recycler.c 
b/monetdb5/optimizer/opt_recycler.c
--- a/monetdb5/optimizer/opt_recycler.c
+++ b/monetdb5/optimizer/opt_recycler.c
@@ -34,7 +34,7 @@ OPTrecyclerImplementation(Client cntxt, 
 {
        int i, j, cnt, cand, actions = 1, marks = 0;
        InstrPtr *old, q,p;
-       int limit;
+       int limit, slimit;
        char *recycled;
 
        (void) cntxt;
@@ -42,6 +42,7 @@ OPTrecyclerImplementation(Client cntxt, 
        (void) pci;
 
        limit = mb->stop;
+       slimit = mb->ssize;
        old = mb->stmt;
 
        /* watch out, newly created instructions may introduce new variables */
@@ -71,8 +72,10 @@ OPTrecyclerImplementation(Client cntxt, 
                                        actions++;
                                }
                                if (getModuleId(p) == sqlRef) {
+                                       /*
                                        q= copyInstruction(p);
                                        getModuleId(q) = recycleRef;
+                                       */
                                        actions++;
                                }
                        }
@@ -115,6 +118,9 @@ OPTrecyclerImplementation(Client cntxt, 
        }
        for (; i < limit; i++) 
                pushInstruction(mb, old[i]);
+       for (; i < slimit; i++) 
+               if (old[i])
+                       freeInstruction(old[i]);
        GDKfree(old);
        GDKfree(recycled);
        mb->recycle = marks > 0;
diff --git a/monetdb5/optimizer/opt_remap.c b/monetdb5/optimizer/opt_remap.c
--- a/monetdb5/optimizer/opt_remap.c
+++ b/monetdb5/optimizer/opt_remap.c
@@ -447,8 +447,8 @@ OPTremapImplementation(Client cntxt, Mal
                }
        }
        for(; i<slimit; i++)
-       if( old[i])
-               freeInstruction(old[i]);
+               if( old[i])
+                       freeInstruction(old[i]);
        GDKfree(old);
        OPTDEBUGremap
        if (doit){
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to