📄 mal_stack.c
字号:
#line 110 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_stack.mx"#include "mal_config.h"#include "mal_stack.h"MalStkPtrnewGlobalStack(int size){ MalStkPtr s; s = (MalStkPtr) GDKzalloc(stackSize(size) + sizeof(MalStack)); if (s == NULL) GDKfatal("newGlobalStack:can not obtain memory\n"); s->stksize = size; return s;}MalStkPtrreallocGlobalStack(MalStkPtr old, int cnt){ int k; MalStkPtr s; if (old->stksize > cnt) return old; k = ((cnt / STACKINCR) + 1) * STACKINCR; s = newGlobalStack(k); memcpy(s, old, stackSize(old->stksize)); s->stksize = k; GDKfree(old); return s;}MalStkPtrreallocStack(MalStkPtr s, int cnt){ int k; MalStkPtr old = s; if (s->stksize > cnt) return s; k = ((cnt / STACKINCR) + 1) * STACKINCR; s = (MalStkPtr) alloca(stackSize(k)); memset((char *) s, 0, stackSize(k)); memcpy(s, old, stackSize(old->stksize)); s->stksize = k; /* cannot gdk free, alloca data */ assert(0); GDKfree(old); return s;}#line 166 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_stack.mx"voidchkStack(MalStkPtr stk, int i){ if (stk->stksize <= i) { reallocStack(stk, STACKINCR); }}voidfreeStack(MalStkPtr stk){ GDKfree(stk);}voidclearStack(MalStkPtr s){ ValPtr v; int i = s->stktop; for (v = s->stk; i >= 0; i--, v++) if (ATOMextern(v->vtype) && v->val.pval) { stream_printf(GDKout, "freeing %s\n", v->val.sval); GDKfree(v->val.pval); }}#line 193 "/export/scratch0/monet/monet.GNU.64.64.d.14791/MonetDB5/src/mal/mal_stack.mx"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -