⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mal_stack.h

📁 一个内存数据库的源代码这是服务器端还有客户端
💻 H
字号:
#ifndef _MAL_STACK_H_#define _MAL_STACK_H_#include "mal.h"#include "gdk.h"#include "gdk_system.h"#define STACKINCR   128#define MAXGLOBALS  4 * STACKINCR#define MAXSHARES   2typedef struct MALSTK {	int stksize;	int stktop;	lng stkdepth;		/* to protect against overflow */	short keepAlive;	/* do not garbage collect when set */	short garbageCollect; /* stack needs garbage collection */	MT_Lock stklock;	/* used for parallel processing */	int shares;			/* number of processes locked onto this stack */	int childs[MAXSHARES]; /* not used */	char cmd;		/* debugger communication */	int pcup;		/* saved pc upon a recursive all */	struct MALSTK *up;	/* stack trace list */	struct MALSTK *down;	/* stack trace list */	struct MALBLK *blk;	/* associated definition */	ValRecord stk[1];} MalStack, *MalStkPtr;#define stackSize(CNT) (sizeof(ValRecord)*(CNT) + sizeof(MalStack))#define newStack(S,CNT) S= (MalStkPtr) alloca(stackSize(CNT));\		(S)->stksize=CNT;mal_export MalStkPtr newGlobalStack(int size);mal_export MalStkPtr reallocStack(MalStkPtr s, int cnt);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;}#define getStkRecord(S,P,I) &(S)->stk[(P)->argv[I]]#define getStkValue(S,P,I)  ( getStkType(S,P,I)== TYPE_str? \					getStkRecord(S,P,I)->val.sval :\					getStkRecord(S,P,I)->val.pval )#define getStkType(S,P,I)   (S)->stk[(P)->argv[I]].vtype#define setStkType(S,P,I,T) (S)->stk[(P)->argv[I]].vtype = T#endif /* _MAL_STACK_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -