Changeset: ad7d7cd961db for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ad7d7cd961db
Modified Files:
monetdb5/mal/mal_interpreter.c
monetdb5/mal/mal_stack.c
Branch: default
Log Message:
fixed off by one error (and over allocated stack)
diffs (40 lines):
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -257,11 +257,8 @@ prepareMALstack(MalBlkPtr mb, int size)
ValPtr lhs, rhs;
stk = newGlobalStack(size);
- if (!stk) {
+ if (!stk)
return NULL;
- }
- //memset((char *)stk, 0, stackSize(size)); already set
- //stk->stksize = size;
stk->stktop = mb->vtop;
stk->blk = mb;
stk->workers = 0;
diff --git a/monetdb5/mal/mal_stack.c b/monetdb5/mal/mal_stack.c
--- a/monetdb5/mal/mal_stack.c
+++ b/monetdb5/mal/mal_stack.c
@@ -59,7 +59,7 @@ newGlobalStack(int size)
{
MalStkPtr s;
- s = (MalStkPtr) GDKzalloc(stackSize(size) + offsetof(MalStack, stk));
+ s = (MalStkPtr) GDKzalloc(stackSize(size));
if (!s)
return NULL;
s->stksize = size;
@@ -108,9 +108,8 @@ clearStack(MalStkPtr s)
if (!s) return;
- i = s->stktop;
-
- for (v = s->stk; i >= 0; i--, v++)
+ i = s->stktop - 1;
+ for (v = s->stk; i > 0; i--, v++)
if (ATOMextern(v->vtype) && v->val.pval) {
GDKfree(v->val.pval);
v->vtype = 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list