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

Reply via email to