=================================================================== RCS file: /home/cvs/OpenXM/src/kxx/serversm.h,v retrieving revision 1.1 retrieving revision 1.8 diff -u -p -r1.1 -r1.8 --- OpenXM/src/kxx/serversm.h 1999/10/08 02:12:13 1.1 +++ OpenXM/src/kxx/serversm.h 2015/10/09 23:46:18 1.8 @@ -1,4 +1,8 @@ /* server stack machine, serversm.h */ +/* miss of these declarations caused segfault of ox_sm1 2015.10.09 */ +#include +void *sGC_malloc(int n); + void *Sm1_mathcap(void); int Sm1_setMathCap(ox_stream os); void Sm1_pops(void); @@ -13,8 +17,22 @@ int Sm1_pushError2(int serial,int no,char *message); char *Sm1_popErrorMessage(char *s); void Sm1_getsp(void); void Sm1_dupErrors(void); +void Sm1_pushCMOtag(int serial); +#include +#if defined(__CYGWIN__) || defined(__MSYS__) +#define MYSETJMP(e) _setjmp(e) +#define MYSIGSETJMP(e,f) _setjmp(e) +#define MYLONGJMP(e,f) _longjmp(e,f) +#define MYSIGLONGJMP(e,f) _longjmp(e,f) +#else +#define MYSETJMP(e) setjmp(e) +#define MYSIGSETJMP(e,f) sigsetjmp(e,f) +#define MYLONGJMP(e,f) longjmp(e,f) +#define MYSIGLONGJMP(e,f) siglongjmp(e,f) +#endif + /******************** Object from Kan/stackm.h *************************/ #define Snull 0 #define Sinteger 1 /* integer */ @@ -35,7 +53,10 @@ struct object{ int tag; /* class identifier */ union cell lc; /* left cell */ union cell rc; /* right cell */ + struct object *attr; }; +#define OINIT { .attr = NULL } + /********** macros to use Sarray **********************/ /* put to Object Array */ #define putoa(ob,i,cc) {\ @@ -57,9 +78,12 @@ void KSpush(struct object ob); struct object KfindUserDictionary(char *s); struct object KputUserDictionary(char *s,struct object ob); struct object KnewErrorPacket(int serial,int no,char *s); +struct object KnewErrorPacketObj(struct object); struct object KSmathCap(void); /* defined plugin/cmo.c */ void *KSmathCapByStruct(void); /* defined plugin/cmo.c */ char *popErrorStackByString(void); struct object KSdupErrors(void); struct object KpoInteger(int i); - +struct object KpoString(char *s); +struct object KSpeek(int k); +struct object KSnewObjectArray(int k);