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

Reply via email to