Update of /cvsroot/monetdb/MonetDB5/src/optimizer
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv8011

Modified Files:
        opt_garbageCollector.mx opt_multiplex.mx opt_peephole.mx 
        opt_remap.mx opt_strengthReduction.mx opt_trace.mx 
Log Message:
Minor updates to avoid some leakage.


Index: opt_peephole.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_peephole.mx,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- opt_peephole.mx     17 Aug 2007 13:56:56 -0000      1.12
+++ opt_peephole.mx     31 Oct 2007 10:36:26 -0000      1.13
@@ -89,7 +89,7 @@
 OPTpeepholeImplementation(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        InstrPtr p, q, r, *old;
-       int i, limit, doit, actions = 0;
+       int i, limit, slimit, doit, actions = 0;
 
 #ifdef DEBUG_OPT_PEEPHOLE
        stream_printf(GDKout, "Peephole optimizer started\n");
@@ -100,9 +100,10 @@
        doit = 0;
        setLifespan(mb);
        limit = mb->stop;
+       slimit = mb->ssize;
        old = mb->stmt;
 
-       newMalBlkStmt(mb, mb->stop);
+       newMalBlkStmt(mb, mb->ssize);
        for (i = 0; i < limit; i++) {
                p = old[i];
                q = i < limit - 1 ? old[i + 1] : 0;
@@ -129,6 +130,9 @@
                else
                        pushInstruction(mb, p);
        }
+       for( ; i<slimit; i++)
+       if( old[i])
+               freeInstruction(old[i]);
        GDKfree(old);
        if (doit) {
                chkProgram(MCgetClient()->nspace, mb);

Index: opt_strengthReduction.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_strengthReduction.mx,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- opt_strengthReduction.mx    16 Jul 2007 10:53:09 -0000      1.10
+++ opt_strengthReduction.mx    31 Oct 2007 10:36:27 -0000      1.11
@@ -132,6 +132,11 @@
        ik = 0;
        blk = 0;
        blkexit= blkbegin = 0;
+       for (i = mb->stop; i < mb->ssize; i++)
+       if( mb->stmt[i]){
+               freeInstruction(mb->stmt[i]);
+               mb->stmt[i]=0;
+       }
        for (i = 0; i < mb->stop; i++)
                before[i] = within[i] = 0;
        before[bk++] = getInstrPtr(mb, 0);      /* to become a factory */

Index: opt_garbageCollector.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_garbageCollector.mx,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- opt_garbageCollector.mx     21 Aug 2007 10:41:34 -0000      1.27
+++ opt_garbageCollector.mx     31 Oct 2007 10:36:24 -0000      1.28
@@ -168,7 +168,7 @@
 static int
 OPTgarbageCollectorImplementation(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       int i, j, k, limit, done;
+       int i, j, k, limit,slimit, done;
        InstrPtr p, q, *old;
        Module s = MCgetClient()->nspace;
        int actions = 0;
@@ -182,7 +182,8 @@
 
        old= mb->stmt;
        limit = mb->stop;
-       newMalBlkStmt(mb,mb->stop);
+       slimit = mb->ssize;
+       newMalBlkStmt(mb,mb->ssize);
 
        for (i = 0; i < limit; i++) {
                p = old[i];
@@ -215,6 +216,9 @@
                stream_printf(GDKout, "End of GCoptimizer\n");
        }
 #endif
+       for(; i<slimit; i++)
+       if( old[i])
+               freeInstruction(old[i]);
        GDKfree(old);
        return actions;
 }

Index: opt_trace.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_trace.mx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- opt_trace.mx        11 Sep 2007 07:04:14 -0000      1.1
+++ opt_trace.mx        31 Oct 2007 10:36:28 -0000      1.2
@@ -109,7 +109,7 @@
 static int 
 OPTtraceImplementation(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
-       int i, k,limit;
+       int i, k,limit,slimit;
        InstrPtr p=0, *old= mb->stmt, q;
        int actions = 0;
        str mod= putName("mdb",3);
@@ -129,7 +129,8 @@
                        monitor[i].fcnptr= putName(monitor[i].fcnnme, 
strlen(monitor[i].fcnnme));
                }
        limit= mb->stop;
-       newMalBlkStmt(mb, mb->stop); /* a new statement stack */
+       slimit= mb->ssize;
+       newMalBlkStmt(mb, mb->ssize); /* a new statement stack */
 
        pushInstruction(mb, old[0]);
        for (i = 1; i < limit; i++) {
@@ -151,6 +152,9 @@
        stream_printf(GDKout,"LEAVING DEAD CODE ELIMINATION\n");
        printFunction(GDKout,mb,LIST_MAL_ALL);
 #endif
+       for( ; i<slimit; i++)
+       if(old[i])
+               freeInstruction(old[i]);
        GDKfree(old);
        return actions+i;
 }

Index: opt_multiplex.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_multiplex.mx,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- opt_multiplex.mx    17 Aug 2007 13:56:55 -0000      1.26
+++ opt_multiplex.mx    31 Oct 2007 10:36:25 -0000      1.27
@@ -286,7 +286,7 @@
 OPTmultiplexImplementation(MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        InstrPtr *old, p;
-       int i, limit,doit= 0;
+       int i, limit, slimit, doit= 0;
        str msg= MAL_SUCCEED;
 
        (void) stk;
@@ -294,7 +294,8 @@
 
        old = mb->stmt;
        limit = mb->stop;
-       newMalBlkStmt(mb, mb->stop);
+       slimit = mb->ssize;
+       newMalBlkStmt(mb, mb->ssize);
 
        for (i = 0; i < limit; i++) {
                p = old[i];
@@ -313,6 +314,9 @@
                if( old[i])
                        pushInstruction(mb, p);
        }
+       for(;i<slimit; i++)
+       if( old[i])
+               freeInstruction(old[i]);
        GDKfree(old);
        return doit;
 }

Index: opt_remap.mx
===================================================================
RCS file: /cvsroot/monetdb/MonetDB5/src/optimizer/opt_remap.mx,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- opt_remap.mx        17 Aug 2007 13:56:56 -0000      1.13
+++ opt_remap.mx        31 Oct 2007 10:36:27 -0000      1.14
@@ -173,14 +173,15 @@
 {
 
        InstrPtr *old, p;
-       int i, limit, doit= 0;
+       int i, limit, slimit, doit= 0;
        Client cntxt = MCgetClient();
        Module scope = cntxt->nspace;
 
        (void) pci;
        old = mb->stmt;
        limit = mb->stop;
-       newMalBlkStmt(mb, mb->stop);
+       slimit = mb->ssize;
+       newMalBlkStmt(mb, mb->ssize);
 
        for (i = 0; i < limit; i++) {
                p = old[i];
@@ -196,6 +197,9 @@
                } else
                        pushInstruction(mb, p);
        }
+       for(; i<slimit; i++)
+       if( old[i])
+               freeInstruction(old[i]);
        GDKfree(old);
        return doit;
 }


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Monetdb-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

Reply via email to