Changeset: 38381f7795af for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=38381f7795af
Modified Files:
monetdb5/mal/mal_box.mx
monetdb5/mal/mal_stack.c
monetdb5/mal/mal_stack.h
Branch: Aug2011
Log Message:
Redo of changeset 13184d72c4bb.
Resize stack allocated to box upon need
Removal of the old alloca call.
diffs (61 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
@@ -425,7 +425,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.c b/monetdb5/mal/mal_stack.c
--- a/monetdb5/mal/mal_stack.c
+++ b/monetdb5/mal/mal_stack.c
@@ -106,12 +106,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;
}
@@ -125,19 +122,6 @@
* runtime stack.
*/
void
-chkStack(MalStkPtr stk, int i)
-{
-#if 0
-/* avoid the darkness */
- if (stk->stksize <= i) {
- reallocStack(stk, STACKINCR);
- }
-#else
- (void)stk;
- (void)i;
-#endif
-}
-void
freeStack(MalStkPtr stk)
{
clearStack(stk);
diff --git a/monetdb5/mal/mal_stack.h b/monetdb5/mal/mal_stack.h
--- a/monetdb5/mal/mal_stack.h
+++ b/monetdb5/mal/mal_stack.h
@@ -77,7 +77,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;}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list