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

Reply via email to