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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list