Changeset: 2f7a96b55e16 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2f7a96b55e16
Modified Files:
        monetdb5/mal/mal.c
        monetdb5/mal/mal_function.c
        monetdb5/mal/mal_module.c
        monetdb5/mal/mal_namespace.c
        monetdb5/mal/mal_parser.c
        monetdb5/mal/mal_sabaoth.c
        monetdb5/mal/mal_session.c
        monetdb5/optimizer/opt_mergetable.c
Branch: default
Log Message:

random small fixes for a cleaner exit


diffs (117 lines):

diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -343,7 +343,6 @@ void mal_exit(void){
        unloadLibraries();
 #if 0
        /* skip this to solve random crashes, needs work */
-       freeBoxes(mal_clients);
        freeModuleList(mal_clients->nspace);
 
        finishNamespace();
@@ -356,7 +355,6 @@ void mal_exit(void){
        if( mal_clients->fdin){
                /* missing protection against closing stdin stream */
                (void) mnstr_close(mal_clients->fdin->s);
-               (void) mnstr_destroy(mal_clients->fdin->s);
                (void) bstream_destroy(mal_clients->fdin);
        }
        if( mal_clients->fdout && mal_clients->fdout != GDKstdout) {
diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c
--- a/monetdb5/mal/mal_function.c
+++ b/monetdb5/mal/mal_function.c
@@ -77,8 +77,10 @@ Symbol newFunction(str mod, str nme,int 
        if (s == NULL)
                return NULL;
        p = newInstruction(NULL,kind);
-       if (p == NULL)
+       if (p == NULL) {
+               freeSymbol(s);
                return NULL;
+       }
        setModuleId(p, mod);
        setFunctionId(p, nme);
        setDestVar(p, newVariable(s->def,GDKstrdup(nme),TYPE_any));
diff --git a/monetdb5/mal/mal_module.c b/monetdb5/mal/mal_module.c
--- a/monetdb5/mal/mal_module.c
+++ b/monetdb5/mal/mal_module.c
@@ -195,13 +195,14 @@ void freeModule(Module m)
                        int ret = 0;
 
                        assert(pci->fcn != NULL);
-printf("epiloque!!!\n");
                        (*pci->fcn)(&ret);
                        (void)ret;
                }
        }
        freeSubScope(m);
        clrModuleJump(m->name, m);
+       if (m->help)
+               GDKfree(m->help);
        GDKfree(m);
 }
 
diff --git a/monetdb5/mal/mal_namespace.c b/monetdb5/mal/mal_namespace.c
--- a/monetdb5/mal/mal_namespace.c
+++ b/monetdb5/mal/mal_namespace.c
@@ -96,8 +96,10 @@ void finishNamespace(void) {
        for ( i =0; i < HASHMASK; i++){
                n = hash[i];
                hash[i] = ehash[i] = 0;
-               for( n= hash[i]; n; n = m){
+               for( ; n; n = m){
                        m = n->next;
+                       if (n->nme)
+                               GDKfree(n->nme);
                        GDKfree(n);
                }
        }
diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c
--- a/monetdb5/mal/mal_parser.c
+++ b/monetdb5/mal/mal_parser.c
@@ -1303,6 +1303,10 @@ fcnHeader(Client cntxt, int kind)
        } else { /* default */
                setVarType(curBlk, 0, TYPE_void);
        }
+       if (curInstr != getInstrPtr(curBlk, 0)) {
+               freeInstruction(getInstrPtr(curBlk, 0));
+               getInstrPtr(curBlk, 0) = curInstr;
+       }
        return curBlk;
 }
 
diff --git a/monetdb5/mal/mal_sabaoth.c b/monetdb5/mal/mal_sabaoth.c
--- a/monetdb5/mal/mal_sabaoth.c
+++ b/monetdb5/mal/mal_sabaoth.c
@@ -141,7 +141,7 @@ str SABAOTHmarchConnection(int *ret, str
  */
 str SABAOTHgetLocalConnection(str *ret) {
        char data[8096];
-       sabdb *stats;
+       sabdb *stats = NULL;
        str err;
 
        err = msab_getMyStatus(&stats);
diff --git a/monetdb5/mal/mal_session.c b/monetdb5/mal/mal_session.c
--- a/monetdb5/mal/mal_session.c
+++ b/monetdb5/mal/mal_session.c
@@ -226,7 +226,7 @@ MSscheduleClient(str command, str challe
        } else {
                str err;
                oid uid;
-               sabdb *stats;
+               sabdb *stats = NULL;
                Client root = &mal_clients[0];
 
                /* access control: verify the credentials supplied by the user,
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
@@ -904,7 +904,6 @@ mat_group_aggr(MalBlkPtr mb, InstrPtr p,
 /* The mat_group_{new,derive} keep an ext,attr1..attrn table.
  * This is the input for the final second phase group by.
  */
-
 static void
 mat_pack_group(MalBlkPtr mb, mat_t *mat, int mtop, int g)
 {
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to