pike.git / src / svalue.h

version» Context lines:

pike.git/src/svalue.h:55:      /* The native types.    *    * Note that PIKE_T_INT is zero so that cleared memory    * is filled with zeroes.    */   enum PIKE_TYPE {    PIKE_T_INT=0,    PIKE_T_FLOAT=1,    +  PIKE_T_FUNCTION_ARG = 4, /* Only used in type strings. */ +    /* NB: The reference counted types all have bit 4 set. */    PIKE_T_ARRAY=8,    PIKE_T_MAPPING=9,    PIKE_T_MULTISET=10,    PIKE_T_OBJECT=11,    PIKE_T_FUNCTION=12,    PIKE_T_PROGRAM=13,    PIKE_T_STRING=14,    PIKE_T_TYPE=15,   
pike.git/src/svalue.h:253:    struct svalue * __sv_ptr = &( SVAL ); \    __sv_ptr->u.FIELD = (EXPR); \    SET_SVAL_TYPE_SUBTYPE(*__sv_ptr, TYPE, SUBTYPE); \    } while(0)      /*   */   #define INVALIDATE_SVAL(SVAL) SET_SVAL_TYPE_DC(SVAL, 99) /* an invalid type */       - /* NOTE: The t* macros below currently use the old type encoding + /* Macros for generating strings compatible with +  * pike_types.cmod:make_pike_type() et al, as well +  * as encode.c:decode_type(). +  * +  * NOTE: The t* macros below currently use the old type encoding    * to be compatible with __parse_pike_type() in older    * versions of Pike.    */   #define tArr(VAL) "\000" VAL   #define tArray tArr(tMix)   #define tLArr(LEN, VAL) "\354" LEN VAL   #define tMap(IND,VAL) "\001" IND VAL   #define tMapping tMap(tMix,tMix)   #define tSet(IND) "\002" IND   #define tMultiset tSet(tMix)   #define tObj "\003\000\000\000\000\000"      #define tFuncV(ARGS,REST,RET) MagictFuncV(RET,REST,ARGS)   #define tFunc(ARGS,RET) MagictFunc(RET,ARGS) -  + #define tFuncArg(ARG,REST) "\014" ARG REST      #define tTuple(T1,T2) "\364" T1 T2   #define tTriple(T1,T2,T3) tTuple(T1, tTuple(T2, T3))   #define tQuad(T1,T2,T3,T4) tTriple(tTuple(T1, T2), T3, T4)      /* These two magic funcions are used to make MSVC++ work    * even if 'ARGS' is empty.    */   #define MagictFuncV(RET,REST,ARGS) "\004" ARGS "\021" REST RET   #define MagictFunc(RET,ARGS) tFuncV(ARGS "", tVoid, RET)