Changeset: 929ca52aa5b0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=929ca52aa5b0
Modified Files:
        gdk/gdk_bbp.c
        gdk/gdk_storage.c
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/mal.c
        monetdb5/modules/mal/manifold.c
        sql/server/sql_mvc.c
        tools/mserver/mserver5.c
Branch: default
Log Message:

Merge with Jun2016 branch.


diffs (179 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1389,7 +1389,11 @@ BBPinit(void)
                GDKfatal("BBPinit: cannot properly prepare process %s. Please 
check whether your disk is full or write-protected", BAKDIR);
 
        /* cleanup any leftovers (must be done after BBPrecover) */
-       BBPdiskscan(GDKfilepath(0, NULL, BATDIR, NULL));
+       {
+               char *d = GDKfilepath(0, NULL, BATDIR, NULL);
+               BBPdiskscan(d);
+               GDKfree(d);
+       }
 
 #if SIZEOF_SIZE_T == 8 && SIZEOF_OID == 8
        if (oidsize == SIZEOF_INT)
@@ -4065,6 +4069,7 @@ BBPrecover_subdir(void)
        struct dirent *dent;
        gdk_return ret = GDK_SUCCEED;
 
+       GDKfree(subdirpath);
        if (dirp == NULL) {
                return GDK_SUCCEED;     /* nothing to do */
        }
@@ -4094,7 +4099,6 @@ BBPrecover_subdir(void)
 
        if (ret != GDK_SUCCEED)
                GDKerror("BBPrecover_subdir: recovery failed. Please check 
whether your disk is full or write-protected.\n");
-       GDKfree(subdirpath);
        return ret;
 }
 
@@ -4323,10 +4327,19 @@ BBPatom_load(int atom)
 void
 gdk_bbp_reset(void)
 {
-       memset((char*) BBP, 0, sizeof(BBP));
+       int i;
+
+       while (BBPlimit > 0) {
+               BBPlimit -= BBPINIT;
+               assert(BBPlimit >= 0);
+               GDKfree(BBP[BBPlimit >> BBPINITLOG]);
+       }
+       memset(BBP, 0, sizeof(BBP));
        BBPlimit = 0;
        BBPsize = 0;
-       memset((char*) BBPfarms, 0, sizeof(BBPfarms));
+       for (i = 0; i < MAXFARMS; i++)
+               GDKfree((void *) BBPfarms[i].dirname); /* loose "const" */
+       memset(BBPfarms, 0, sizeof(BBPfarms));
        BBP_hash = 0;
        BBP_mask = 0;
        stamp = 0;
@@ -4339,8 +4352,8 @@ gdk_bbp_reset(void)
 
        locked_by = 0;
        BBPunloadCnt = 0;
-       memset((char*) lastused, 0, sizeof(lastused));
-       memset((char*) bbptrim, 0, sizeof(bbptrim));
+       memset(lastused, 0, sizeof(lastused));
+       memset(bbptrim, 0, sizeof(bbptrim));
        bbptrimfirst = BBPMAXTRIM;
        bbptrimlast = 0;
        bbptrimmax = BBPMAXTRIM;
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -1044,6 +1044,7 @@ BATprintcolumns(stream *s, int argc, BAT
                mnstr_write(s, "  ]\n", 1, 4);
        }
 
+       GDKfree(buf);
        GDKfree(colinfo);
 
        return GDK_SUCCEED;
diff --git a/monetdb5/extras/rapi/rapi.c b/monetdb5/extras/rapi/rapi.c
--- a/monetdb5/extras/rapi/rapi.c
+++ b/monetdb5/extras/rapi/rapi.c
@@ -191,8 +191,11 @@ static char *RAPIinstalladdons(void) {
        UNPROTECT(1);
 
        // run rapi.R environment setup script
-       snprintf(rapiinclude, sizeof(rapiinclude), "source(\"%s\")",
-                        locate_file("rapi", ".R", 0));
+       {
+               char *f = locate_file("rapi", ".R", 0);
+               snprintf(rapiinclude, sizeof(rapiinclude), "source(\"%s\")", f);
+               GDKfree(f);
+       }
 #if DIR_SEP != '/'
        {
                char *p;
diff --git a/monetdb5/mal/mal.c b/monetdb5/mal/mal.c
--- a/monetdb5/mal/mal.c
+++ b/monetdb5/mal/mal.c
@@ -143,6 +143,7 @@ void mserver_reset(void)
 */
        mal_factory_reset();
        mal_dataflow_reset();
+       THRdel(mal_clients->mythread);
        GDKreset(0);    // terminate all other threads
        mal_client_reset();
        mal_module_reset();
diff --git a/monetdb5/modules/mal/manifold.c b/monetdb5/modules/mal/manifold.c
--- a/monetdb5/modules/mal/manifold.c
+++ b/monetdb5/modules/mal/manifold.c
@@ -111,6 +111,7 @@ typedef struct{
                                if (msg)                                        
                                                        \
                                        break;                                  
                                                        \
                                bunfastapp(mut->args[0].b, (void*) y);          
                        \
+                               GDKfree(y); y = NULL;                           
                                        \
                                for( i = mut->fvar; i<= mut->lvar; i++) {       
                        \
                                        if(ATOMstorage(mut->args[i].type) == 
TYPE_void ){       \
                                                args[i] = (void*)  
&mut->args[i].o;                             \
diff --git a/sql/server/sql_mvc.c b/sql/server/sql_mvc.c
--- a/sql/server/sql_mvc.c
+++ b/sql/server/sql_mvc.c
@@ -27,37 +27,37 @@ mvc_init(int debug, store_type store, in
 {
        int first = 0;
 
-       logger_settings *log_settings = (struct logger_settings *) 
GDKmalloc(sizeof(struct logger_settings));
+       logger_settings log_settings;
        /* Set the default WAL directory. "sql_logs" by default */
-       log_settings->logdir = "sql_logs";
+       log_settings.logdir = "sql_logs";
        /* Get and pass on the WAL directory location, if set */
        if (GDKgetenv("gdk_logdir") != NULL) {
-               log_settings->logdir = GDKgetenv("gdk_logdir");
+               log_settings.logdir = GDKgetenv("gdk_logdir");
        }
        /* Get and pass on the shared WAL directory location, if set */
-       log_settings->shared_logdir = GDKgetenv("gdk_shared_logdir");
+       log_settings.shared_logdir = GDKgetenv("gdk_shared_logdir");
        /* Get and pass on the shared WAL drift threshold, if set.
         * -1 by default, meaning it should be ignored, since it is not set */
-       log_settings->shared_drift_threshold = 
GDKgetenv_int("gdk_shared_drift_threshold", -1);
+       log_settings.shared_drift_threshold = 
GDKgetenv_int("gdk_shared_drift_threshold", -1);
 
        /* Get and pass on the flag how many WAL files should be preserved.
         * 0 by default - keeps only the current WAL file. */
-       log_settings->keep_persisted_log_files = 
GDKgetenv_int("gdk_keep_persisted_log_files", 0);
+       log_settings.keep_persisted_log_files = 
GDKgetenv_int("gdk_keep_persisted_log_files", 0);
 
        mvc_debug = debug&4;
        if (mvc_debug) {
-               fprintf(stderr, "#mvc_init logdir %s\n", log_settings->logdir);
-               fprintf(stderr, "#mvc_init keep_persisted_log_files %d\n", 
log_settings->keep_persisted_log_files);
-               if (log_settings->shared_logdir != NULL) {
-                       fprintf(stderr, "#mvc_init shared_logdir %s\n", 
log_settings->shared_logdir);
+               fprintf(stderr, "#mvc_init logdir %s\n", log_settings.logdir);
+               fprintf(stderr, "#mvc_init keep_persisted_log_files %d\n", 
log_settings.keep_persisted_log_files);
+               if (log_settings.shared_logdir != NULL) {
+                       fprintf(stderr, "#mvc_init shared_logdir %s\n", 
log_settings.shared_logdir);
                }
-               fprintf(stderr, "#mvc_init shared_drift_threshold %d\n", 
log_settings->shared_drift_threshold);
+               fprintf(stderr, "#mvc_init shared_drift_threshold %d\n", 
log_settings.shared_drift_threshold);
        }
        keyword_init();
        scanner_init_keywords();
 
 
-       if ((first = store_init(debug, store, ro, su, log_settings, stk)) < 0) {
+       if ((first = store_init(debug, store, ro, su, &log_settings, stk)) < 0) 
{
                fprintf(stderr, "!mvc_init: unable to create system tables\n");
                return -1;
        }
diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -511,6 +511,7 @@ main(int argc, char **av)
        } else {
                BBPaddfarm(dbpath, (1 << PERSISTENT) | (1 << TRANSIENT));
        }
+       GDKfree(dbpath);
        if (monet_init(set, setlen) == 0) {
                mo_free_options(set, setlen);
                return 0;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to