pike.git / src / encode.c

version» Context lines:

pike.git/src/encode.c:405:    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->cdr == int_type_string) { +  if (t->car != int_pos_type_string) { +  addchar(PIKE_T_LSTRING); +  EDB(1, { +  ENCODE_WERR(".type lstring"); +  }); +  encode_type(t->car, data); +  encode_type(t->cdr, data); +  } else if (t->cdr == 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->cdr, data);    }    return; -  +  } else if (t->type == T_ARRAY) { +  if (t->car != int_pos_type_string) { +  addchar(PIKE_T_LARRAY); +  EDB(1, { +  ENCODE_WERR(".type lstring"); +  }); +  encode_type(t->car, data); +  t = t->cdr; +  goto one_more_type; +  }    } 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",
pike.git/src/encode.c:2771:    case PIKE_T_NSTRING:    tmp = T_STRING;    /* FALLTHRU */    case T_ARRAY:    {    low_decode_type(data);    push_unlimited_array_type(tmp);    }    break;    +  case PIKE_T_LSTRING: +  low_decode_type(data); +  low_decode_type(data); +  push_type(PIKE_T_STRING); +  break; +  +  case PIKE_T_LARRAY: +  low_decode_type(data); +  low_decode_type(data); +  push_type(PIKE_T_ARRAY); +  break; +     case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':    case '7':    case '8':    case '9':