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