Changeset: 54f4523dc7df for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=54f4523dc7df
Modified Files:
        gdk/gdk_storage.c
        monetdb5/mal/mal_dataflow.c
        monetdb5/optimizer/opt_reorder.c
Branch: default
Log Message:

Merge with Jun2016 branch.


diffs (112 lines):

diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -353,7 +353,8 @@ GDKextendf(int fd, size_t size, const ch
                        /* extending failed, try to reduce file size
                         * back to original */
                        int err = errno;
-                       (void) ftruncate(fd, stb.st_size);
+                       if (ftruncate(fd, stb.st_size))
+                               perror("ftruncate");
                        errno = err; /* restore for error message */
                        GDKsyserror("GDKextendf: could not extend file\n");
                }
diff --git a/monetdb5/mal/mal_dataflow.c b/monetdb5/mal/mal_dataflow.c
--- a/monetdb5/mal/mal_dataflow.c
+++ b/monetdb5/mal/mal_dataflow.c
@@ -97,8 +97,12 @@ mal_dataflow_reset(void)
 {
        stopMALdataflow();
        memset((char*) workers, 0,  sizeof(workers));
-       if( todo)
+       if( todo) {
+               GDKfree(todo->data);
+               MT_lock_destroy(&todo->l);
+               MT_sema_destroy(&todo->s);
                GDKfree(todo);
+       }
        todo = 0;       /* pending instructions */
        exiting = 0;
 }
diff --git a/monetdb5/optimizer/opt_reorder.c b/monetdb5/optimizer/opt_reorder.c
--- a/monetdb5/optimizer/opt_reorder.c
+++ b/monetdb5/optimizer/opt_reorder.c
@@ -59,6 +59,17 @@ typedef struct{
        int stmt[FLEXIBLE_ARRAY_MEMBER];
 } *Node, NodeRecord;
 
+static void
+OPTremoveDep(Node *list, int lim)
+{
+       int i;
+
+       for (i=0; i< lim; i++)
+               if (list[i])
+                       GDKfree(list[i]);
+       GDKfree(list);
+}
+
 static Node *
 OPTdependencies(Client cntxt, MalBlkPtr mb, int **Ulist)
 {
@@ -81,9 +92,7 @@ OPTdependencies(Client cntxt, MalBlkPtr 
                block |= p->barrier != 0;
                list[i]= (Node) GDKzalloc(offsetof(NodeRecord, stmt) + 
sizeof(int) * p->argc);
                if (list[i] == NULL){
-                       for (i--; i>=0; i--)
-                               GDKfree(list[i]);
-                       GDKfree(list);
+                       OPTremoveDep(list, i);
                        GDKfree(var);
                        return 0;
                }
@@ -97,9 +106,7 @@ OPTdependencies(Client cntxt, MalBlkPtr 
                        if ( var[ getArg(p,j)] ) {
                                //list[i]->stmt[j] = var [getArg(p,j)];
                                // escape we should avoid reused variables.
-                               for (i--; i>=0; i--)
-                                       GDKfree(list[i]);
-                               GDKfree(list);
+                               OPTremoveDep(list, i + 1);
                                GDKfree(var);
                                return 0;
                        }
@@ -148,10 +155,8 @@ OPTdependencies(Client cntxt, MalBlkPtr 
         */
 
        if ( block ){
-               for (i--; i>=0; i--)
-                       GDKfree(list[i]);
+               OPTremoveDep(list, mb->stop);
                GDKfree(uselist);
-               GDKfree(list);
                GDKfree(var);
                return NULL;
        }
@@ -160,17 +165,6 @@ OPTdependencies(Client cntxt, MalBlkPtr 
        return list;
 }
 
-static void
-OPTremoveDep(Node *list, int lim)
-{
-       int i;
-
-       for (i=0; i< lim; i++)
-               if (list[i])
-                       GDKfree(list[i]);
-       GDKfree(list);
-}
-
 static int
 OPTbreadthfirst(Client cntxt, MalBlkPtr mb, int pc, int max, InstrPtr old[], 
Node dep[], int *uselist)
 {
@@ -279,7 +273,7 @@ OPTreorderImplementation(Client cntxt, M
        old = mb->stmt;
        if ( newMalBlkStmt(mb, mb->ssize) < 0) {
                GDKfree(uselist);
-               GDKfree(dep);
+               OPTremoveDep(dep, limit);
                return 0;
        }
        
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to