Changeset: 4c584b865796 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4c584b865796
Modified Files:
monetdb5/optimizer/opt_garbageCollector.c
Branch: default
Log Message:
Minor code upgrade
diffs (64 lines):
diff --git a/monetdb5/optimizer/opt_garbageCollector.c
b/monetdb5/optimizer/opt_garbageCollector.c
--- a/monetdb5/optimizer/opt_garbageCollector.c
+++ b/monetdb5/optimizer/opt_garbageCollector.c
@@ -32,7 +32,9 @@ OPTgarbageCollectorImplementation(Client
char buf[1024];
lng usec = GDKusec();
str msg = MAL_SUCCEED;
+#ifndef NDEBUG
int *used;
+#endif
(void) pci;
(void) stk;
@@ -59,7 +61,9 @@ OPTgarbageCollectorImplementation(Client
// Actual garbage collection stuff, just mark them for re-assessment
vlimit = mb->vtop;
+#ifndef NDEBUG
used = (int *) GDKzalloc(vlimit * sizeof(int));
+#endif
p = NULL;
for (i = 0; i < limit; i++) {
p = getInstrPtr(mb, i);
@@ -67,13 +71,15 @@ OPTgarbageCollectorImplementation(Client
p->typechk = TYPE_UNKNOWN;
/* Set the program counter to ease profiling */
p->pc = i;
- if ( i > 0 && getModuleId(p) != languageRef && getModuleId(p)
!= querylogRef && getModuleId(p) != sqlRef && !p->barrier)
+#ifndef NDEBUG
+ if ( i > 1 && getModuleId(p) != languageRef && getModuleId(p)
!= querylogRef && getModuleId(p) != sqlRef && !p->barrier)
for( j=0; j< p->retc; j++)
used[getArg(p,j)] = i;
if ( getModuleId(p) != languageRef && getFunctionId(p) !=
passRef){
for(j= p->retc ; j< p->argc; j++)
used[getArg(p,j)] = 0;
}
+#endif
if ( p->token == ENDsymbol)
break;
}
@@ -83,21 +89,19 @@ OPTgarbageCollectorImplementation(Client
GDKfree(used);
throw(MAL, "optimizer.garbagecollector", SQLSTATE(42000)
"Incorrect MAL plan encountered");
}
+#ifndef NDEBUG
/* Leave a message behind when we have created variables and not used
them */
for(i=0; i< vlimit; i++)
if( used[i]){
p = getInstrPtr(mb, used[i]);
if( p){
-#ifdef NDEBUG
- snprintf(buf,1024,"Unused variable %s", getVarName(mb,
i));
-#else
str msg = instruction2str(mb, NULL, p, LIST_MAL_ALL);
snprintf(buf,1024,"Unused variable %s: %s",
getVarName(mb, i), msg);
GDKfree(msg);
-#endif
newComment(mb,buf);
}
}
+#endif
GDKfree(used);
getInstrPtr(mb,0)->gc |= GARBAGECONTROL;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list