pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:2381:    fprintf(stderr, "string");    if ((s->car == int_pos_type_string) && (s->cdr == int_type_string)) {    break;    }    fprintf(stderr, "(");    if (s->car != int_pos_type_string) {    simple_describe_type(s->car);    fprintf(stderr, ": ");    }    s = s->cdr; -  if (s != int_type_string) { +  if (s && (s != int_type_string)) {    while (s->type == T_OR) {    struct pike_type *char_type = s->car;    while(char_type->type == T_ASSIGN) {    char_type = char_type->cdr;    }       if (char_type->type == T_ZERO) {    fprintf(stderr, "zero | ");    s = s->cdr;    continue;
pike.git/src/pike_types.cmod:2432:    }    }    fprintf(stderr, " | ");    s = s->cdr;    }    while(s->type == T_ASSIGN) {    s = s->cdr;    }    if (s->type == T_ZERO) {    fprintf(stderr, "zero"); +  } else if (s->type == T_MIXED) { +  fprintf(stderr, "mixed");    } else if ((s->type >= '0') && (s->type <= '9')) {    fprintf(stderr, "$%c", s->type);    } else {   #ifdef PIKE_DEBUG    if (s->type != T_INT) {    Pike_fatal("Invalid node type (%d:%s) in string type.\n",    s->type, get_name_of_type(s->type));    }   #endif /* PIKE_DEBUG */    min = CAR_TO_INT(s);
pike.git/src/pike_types.cmod:2854:    string_builder_putchar(s, ' ');    }    }    if (t->cdr && (t->cdr->type != T_MIXED)) {    string_builder_sprintf(s, "%T", t->cdr);    }    string_builder_putchar(s, ')');    break;       case T_MULTISET: -  if(t->car->type != T_MIXED) { +  if(t->car && (t->car->type != T_MIXED)) {    string_builder_sprintf(s, "multiset(%T)", t->car);    } else {    string_builder_strcat(s, "multiset");    }    break;       case T_NOT:    if (t->car->type > T_NOT) {    string_builder_sprintf(s, "!(%T)", t->car);    } else {