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