Changeset: 969f7427c81f for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=969f7427c81f
Modified Files:
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_profiler.h
        monetdb5/modules/mal/profiler.c
        monetdb5/optimizer/opt_macro.c
        monetdb5/optimizer/opt_mergetable.c
Branch: Jan2014
Log Message:

Some potential leaks fixed


diffs (214 lines):

diff --git a/monetdb5/mal/mal_profiler.c b/monetdb5/mal/mal_profiler.c
--- a/monetdb5/mal/mal_profiler.c
+++ b/monetdb5/mal/mal_profiler.c
@@ -50,11 +50,6 @@ static int offlineProfiling = FALSE;
 static int cachedProfiling = FALSE;
 static str myname = 0;
 
-int
-profilerAvailable(void)
-{
-       return 1;
-}
 static void offlineProfilerEvent(int idx, MalBlkPtr mb, MalStkPtr stk, int pc, 
int start);
 static void cachedProfilerEvent(int idx, MalBlkPtr mb, MalStkPtr stk, int pc);
 static int initTrace(void);
diff --git a/monetdb5/mal/mal_profiler.h b/monetdb5/mal/mal_profiler.h
--- a/monetdb5/mal/mal_profiler.h
+++ b/monetdb5/mal/mal_profiler.h
@@ -72,7 +72,6 @@ mal_export str setLogStreamStream(Module
 mal_export str setStartPoint(Module cntxt, str mod, str fcn);
 mal_export str setEndPoint(Module cntxt, str mod, str fcn);
 
-mal_export int profilerAvailable(void);
 mal_export str startProfiling(void);
 mal_export str stopProfiling(void);
 mal_export str cleanupProfiler(void);
diff --git a/monetdb5/modules/mal/profiler.c b/monetdb5/modules/mal/profiler.c
--- a/monetdb5/modules/mal/profiler.c
+++ b/monetdb5/modules/mal/profiler.c
@@ -75,12 +75,6 @@
 #include "monetdb_config.h"
 #include "profiler.h"
 
-#define checkProfiler(X) \
-       if( ! profilerAvailable()) \
-       throw(MAL, "profiler." X,\
-       OPERATION_FAILED " Monet not compiled for performance monitoring");
-
-
 str
 CMDactivateProfiler(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
@@ -89,7 +83,6 @@ CMDactivateProfiler(Client cntxt, MalBlk
 
        (void) cntxt;           /* fool compiler */
        (void) mb;              /* fool compiler */
-       checkProfiler("activate");
        for ( i= pci->retc; i < pci->argc && msg == MAL_SUCCEED; i++)
                        msg =activateCounter(*(str*) 
getArgReference(stk,pci,i));
        return msg;
@@ -103,7 +96,6 @@ CMDdeactivateProfiler(Client cntxt, MalB
 
        (void) cntxt;           /* fool compiler */
        (void) mb;              /* fool compiler */
-       checkProfiler("deactivate");
        for ( i= pci->retc; i < pci->argc && msg == MAL_SUCCEED; i++)
                        msg =deactivateCounter(*(str*) 
getArgReference(stk,pci,i));
        return msg;
@@ -115,7 +107,6 @@ CMDsetFilterProfiler(Client cntxt, MalBl
        str *mod = (str*) getArgReference(stk,pci,1);
        str *fcn = (str*) getArgReference(stk,pci,2);
        (void) mb;              /* fool compiler */
-       checkProfiler("setFilter");
        setFilter(cntxt->nspace, *mod, *fcn);
        return MAL_SUCCEED;
 }
@@ -129,7 +120,6 @@ CMDsetAllProfiler(Client cntxt, MalBlkPt
        (void) mb;              /* fool compiler */
        (void) stk;
        (void) pc;
-       checkProfiler("setFilter");
        setFilter(cntxt->nspace, x, y);
        GDKfree(x);
        GDKfree(y);
@@ -177,7 +167,6 @@ CMDclrFilterProfiler(Client cntxt, MalBl
        str *mod = (str*) getArgReference(stk,pci,1);
        str *fcn = (str*) getArgReference(stk,pci,2);
        (void) mb;              /* fool compiler */
-       checkProfiler("clrFilter");
        clrFilter(cntxt->nspace, *mod, *fcn);
        return MAL_SUCCEED;
 }
@@ -191,7 +180,6 @@ CMDsetNoneProfiler(Client cntxt, MalBlkP
        (void) mb;              /* fool compiler */
        (void) stk;
        (void) pci;
-       checkProfiler("clrFilter");
        clrFilter(cntxt->nspace, x, y);
        return MAL_SUCCEED;
 }
@@ -200,10 +188,11 @@ str
 CMDsetProfilerFile(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci)
 {
        str *fnme = (str*) getArgReference(stk,pci,1);
+       str msg = MAL_SUCCEED;
        (void) mb;              /* fool compiler */
-       checkProfiler("setProfiler");
-       setLogFile(cntxt->fdout,cntxt->nspace, *fnme);
-       return MAL_SUCCEED;
+       if( msg == MAL_SUCCEED)
+               setLogFile(cntxt->fdout,cntxt->nspace, *fnme);
+       return msg;
 }
 
 str
@@ -212,7 +201,6 @@ CMDsetProfilerStream (Client cntxt, MalB
        str *host = (str*) getArgReference(stk,pci,1);
        int *port = (int*) getArgReference(stk,pci,2);
        (void) mb;              /* fool compiler */
-       checkProfiler("setProfiler");
        setLogStream(cntxt->nspace, *host, *port);
        return MAL_SUCCEED;
 }
@@ -223,7 +211,6 @@ CMDstartPointProfiler(Client cntxt, MalB
        str *mod = (str*) getArgReference(stk,pci,1);
        str *fcn = (str*) getArgReference(stk,pci,2);
        (void) mb;              /* fool compiler */
-       checkProfiler("startPoint");
        setStartPoint(cntxt->nspace, *mod, *fcn);
        return MAL_SUCCEED;
 }
@@ -234,7 +221,6 @@ CMDendPointProfiler(Client cntxt, MalBlk
        str *mod = (str*) getArgReference(stk,pci,1);
        str *fcn = (str*) getArgReference(stk,pci,2);
        (void) mb;              /* fool compiler */
-       checkProfiler("endPoint");
        setStartPoint(cntxt->nspace, *mod, *fcn);
        return MAL_SUCCEED;
 }
@@ -247,7 +233,6 @@ CMDstopProfiler(Client cntxt, MalBlkPtr 
        (void) stk;
        (void) pci;
 
-       checkProfiler("stop");
        stopProfiling();
        return MAL_SUCCEED;
 }
@@ -260,7 +245,6 @@ CMDstartProfiler(Client cntxt, MalBlkPtr
        (void) stk;
        (void) pci;
 
-       checkProfiler("start");
        startProfiling();
        return MAL_SUCCEED;
 }
@@ -268,7 +252,6 @@ str
 CMDnoopProfiler(int *res)
 {
        (void) res;             /* fool compiler */
-       checkProfiler("noop");
        return MAL_SUCCEED;
 }
 
@@ -280,7 +263,6 @@ str
 CMDclearTrace(int *res)
 {
        (void) res;             /* fool compiler */
-       checkProfiler("clearTrace");
        clearTrace();
        return MAL_SUCCEED;
 }
@@ -289,7 +271,6 @@ str
 CMDdumpTrace(int *res)
 {
        (void) res;             /* fool compiler */
-       checkProfiler("dump");
        throw(MAL, "profiler.dump", PROGRAM_NYI);
 }
 
@@ -299,7 +280,6 @@ CMDgetTrace(int *res, str *ev)
        BAT *bn;
 
        (void) res;             /* fool compiler */
-       checkProfiler("getTrace");
        bn = getTrace(*ev);
        if (bn) {
                BBPkeepref(*res = bn->batCacheid);
diff --git a/monetdb5/optimizer/opt_macro.c b/monetdb5/optimizer/opt_macro.c
--- a/monetdb5/optimizer/opt_macro.c
+++ b/monetdb5/optimizer/opt_macro.c
@@ -492,6 +492,7 @@ OPTorcamImplementation(Client cntxt, Mal
        Symbol t;
        str mod,fcn;
        int j;
+       str msg;
 
        (void) cntxt;
        (void) stk;
@@ -517,7 +518,8 @@ OPTorcamImplementation(Client cntxt, Mal
                for (t = s->subscope[j]; t != NULL; t = t->peer)
                        if (t->def->errors == 0) {
                                if (getSignature(t)->token == FUNCTIONsymbol)
-                                       ORCAMprocessor(cntxt, target, t);
+                                       msg =ORCAMprocessor(cntxt, target, t);
+                               if( msg) GDKfree(msg);
                        }
        }
        return 1;
diff --git a/monetdb5/optimizer/opt_mergetable.c 
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -1710,9 +1710,11 @@ OPTmergetableImplementation(Client cntxt
        chkTypes(cntxt->fdout, cntxt->nspace,mb, TRUE);
 
        OPTDEBUGmergetable {
+               str err;
                mnstr_printf(GDKout,"#Result of multi table optimizer\n");
-               (void) optimizerCheck(cntxt,mb,"merge test",1,0,0);
+               err= optimizerCheck(cntxt,mb,"merge test",1,0,0);
                printFunction(GDKout, mb, 0, LIST_MAL_ALL);
+               if( err) GDKfree(err);
        }
 
        if ( mb->errors == 0) {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to