Changeset: 13184d72c4bb for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=13184d72c4bb Modified Files: monetdb5/mal/mal_box.mx monetdb5/mal/mal_stack.mx Branch: Aug2011 Log Message:
Resize stack allocated to box upon need Removal of the old alloca call. diffs (52 lines): diff --git a/monetdb5/mal/mal_box.mx b/monetdb5/mal/mal_box.mx --- a/monetdb5/mal/mal_box.mx +++ b/monetdb5/mal/mal_box.mx @@ -418,7 +418,8 @@ return 0; if (i < 0) { i = newVariable(box->sym, GDKstrdup(name), type); - chkStack(box->val, i); + if (box->val->stksize <= i) + box->val =reallocStack(box->val, STACKINCR); } v = &box->val->stk[i]; VALclear(v); diff --git a/monetdb5/mal/mal_stack.mx b/monetdb5/mal/mal_stack.mx --- a/monetdb5/mal/mal_stack.mx +++ b/monetdb5/mal/mal_stack.mx @@ -112,7 +112,6 @@ mal_export MalStkPtr reallocGlobalStack(MalStkPtr s, int cnt); mal_export void freeStack(MalStkPtr stk); mal_export void clearStack(MalStkPtr s); -mal_export void chkStack(MalStkPtr stk, int i); /* used in src/mal/mal_box.c */ #define VARfreeze(X) if(X){X->frozen=TRUE;} #define VARfixate(X) if(X){X->constant=TRUE;} @@ -173,12 +172,9 @@ if (s->stksize > cnt) return s; k = ((cnt / STACKINCR) + 1) * STACKINCR; - s = (MalStkPtr) alloca(stackSize(k)); - memset((char *) s, 0, stackSize(k)); + s = (MalStkPtr) GDKzalloc(stackSize(k)); memcpy(s, old, stackSize(old->stksize)); s->stksize = k; - /* cannot gdk free, alloca data */ - assert(0); GDKfree(old); return s; } @@ -190,13 +186,6 @@ runtime stack. @c void -chkStack(MalStkPtr stk, int i) -{ - if (stk->stksize <= i) { - reallocStack(stk, STACKINCR); - } -} -void freeStack(MalStkPtr stk) { clearStack(stk); _______________________________________________ Checkin-list mailing list Checkin-list@monetdb.org http://mail.monetdb.org/mailman/listinfo/checkin-list