pike.git / src / encode.c

version» Context lines:

pike.git/src/encode.c:375:      /* NOTE: Take care to encode it exactly as the corresponing    * type string would have been encoded (cf T_FUNCTION, T_MANY,    * T_STRING, PIKE_T_NSTRING).    */   static void encode_type(struct pike_type *t, struct encode_data *data)   {    one_more_type:    if (t->type == T_MANY) {    addchar(T_FUNCTION ^ MIN_REF_TYPE); +  EDB(1, { +  ENCODE_WERR(".type function"); +  });    addchar(T_MANY); -  +  EDB(1, { +  ENCODE_WERR(".type many"); +  });    } else if (t->type == T_STRING) {    if (t->car == int_type_string) {    addchar(T_STRING ^ MIN_REF_TYPE); -  +  EDB(1, { +  ENCODE_WERR(".type string"); +  });    } else {    /* Narrow string */    addchar(PIKE_T_NSTRING); -  +  EDB(1, { +  ENCODE_WERR(".type nstring"); +  });    encode_type(t->car, data);    }    return;    } else if (t->type <= MAX_TYPE) {    addchar(t->type ^ MIN_REF_TYPE); -  +  EDB(1, { +  ENCODE_WERR(".type %s", +  get_name_of_type(t->type)); +  });    } else {    addchar(t->type); -  +  EDB(1, { +  ENCODE_WERR(".type %s", +  get_name_of_type(t->type)); +  });    }    switch(t->type) {    default:    Pike_fatal("error in type tree: %d.\n", t->type);    UNREACHABLE(break);       case PIKE_T_ATTRIBUTE: /* FIXME: Strip this in compat mode. */    case PIKE_T_NAME:    {    struct svalue sval;
pike.git/src/encode.c:413:    goto one_more_type;       case T_ASSIGN:    {    ptrdiff_t marker = CAR_TO_INT(t);    if ((marker < 0) || (marker > 9)) {    Pike_fatal("Bad assign marker: %ld\n",    (long)marker);    }    addchar('0' + marker); +  EDB(1, { +  ENCODE_WERR(".type marker, %d", marker); +  });    t = t->cdr;    }    goto one_more_type;       case T_FUNCTION:    while(t->type == T_FUNCTION) {    encode_type(t->car, data);    t = t->cdr;    }    addchar(T_MANY);    /* FALLTHRU */    case T_MANY:    encode_type(t->car, data);    t = t->cdr;    goto one_more_type;       case T_SCOPE:    {    ptrdiff_t val = CAR_TO_INT(t);    addchar(val & 0xff); -  +  EDB(1, { +  ENCODE_WERR(".type scope, %d", val); +  });    }    t = t->cdr;    goto one_more_type;       case T_MAPPING:    case T_OR:    case T_AND:    encode_type(t->car, data);    t = t->cdr;    goto one_more_type;
pike.git/src/encode.c:457:    case T_MULTISET:    case T_NOT:    t = t->car;    goto one_more_type;       case T_INT:    {    ptrdiff_t val;       buffer_add_be32(&data->buf, CAR_TO_INT(t)); +  EDB(1, { +  ENCODE_WERR(".data %d", CAR_TO_INT(t)); +  });    buffer_add_be32(&data->buf, CDR_TO_INT(t)); -  +  EDB(1, { +  ENCODE_WERR(".data %d", CDR_TO_INT(t)); +  });    }    break;       case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':
pike.git/src/encode.c:481:    case T_FLOAT:    case T_MIXED:    case T_ZERO:    case T_VOID:    case PIKE_T_UNKNOWN:    break;       case T_OBJECT:    {    addchar(CAR_TO_INT(t)); +  EDB(1, { +  ENCODE_WERR(".type %d", CAR_TO_INT(t)); +  });       if(t->cdr)    {    ptrdiff_t id = CDR_TO_INT(t);    if( id >= PROG_DYNAMIC_ID_START )    {    struct program *p=id_to_program(id);    if(p)    {    ref_push_program(p);