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