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
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list