Changeset: f66697e81b1a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f66697e81b1a
Modified Files:
monetdb5/mal/mal_interpreter.c
monetdb5/modules/mal/wlc.c
Branch: default
Log Message:
Coverity leak warning
diffs (63 lines):
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -763,7 +763,7 @@ str runMALsequence(Client cntxt, MalBlkP
} else if (lhs->vtype == TYPE_bat)
BBPretain(lhs->val.bval);
}
- if(ret == MAL_SUCCEED) {
+ if(ret == MAL_SUCCEED && ii == pci->argc) {
ret = runMALsequence(cntxt, pci->blk,
1, pci->blk->stop, nstk, stk, pci);
for (ii = 0; ii < nstk->stktop; ii++)
if
(ATOMextern(nstk->stk[ii].vtype))
@@ -1231,7 +1231,7 @@ str runMALsequence(Client cntxt, MalBlkP
freeException(n);
freeException(ret);
ret = new;
- }
+ } else ret = n;
}
} else {
ret = createException(MAL, nme, "Exception not caught");
diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c
--- a/monetdb5/modules/mal/wlc.c
+++ b/monetdb5/modules/mal/wlc.c
@@ -716,7 +716,7 @@ str
WLCgeneric(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
{
InstrPtr p;
- int i, tpe, varid;
+ int i, k, tpe, varid;
str msg = MAL_SUCCEED;
(void) stk;
@@ -724,20 +724,26 @@ WLCgeneric(Client cntxt, MalBlkPtr mb, M
if(msg)
return msg;
cntxt->wlc_kind = WLC_IGNORE;
- p = newStmt(cntxt->wlc, "wlr",getFunctionId(pci));
+ p = newInstruction(cntxt->wlc, "wlr",getFunctionId(pci));
+ k = newTmpVariable(mb,TYPE_any);
+ if( k >= 0)
+ getArg(p,0) = k;
for( i = pci->retc; i< pci->argc; i++){
tpe =getArgType(mb, pci, i);
switch(tpe){
case TYPE_str:
- p = pushStr(cntxt->wlc, p, getVarConstant(mb,
getArg(pci, i)).val.sval);
+ k = defConstant(mb,TYPE_str,&getVarConstant(mb,
getArg(pci, i)));
+ if( k >= 0)
+ p = addArgument(cntxt->wlc, p, k);
break;
default:
varid = defConstant(cntxt->wlc, tpe,
getArgReference(stk, pci, i));
if( varid >= 0)
- p = pushArgument(cntxt->wlc, p, varid);
+ p = addArgument(cntxt->wlc, p, varid);
}
}
p->ticks = GDKms();
+ pushInstruction(mb,p);
cntxt->wlc_kind = WLC_CATALOG;
return msg;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list