pike.git / src / pike_types.c

version» Context lines:

pike.git/src/pike_types.c:2526:    }    break;    default:    {    string_builder_sprintf(s, "unknown code(%d)", t->type);    break;    }    }   }    - /* Legacy: Do not use. */ - void my_describe_type(struct pike_type *type) - { -  struct string_builder s; -  ONERROR err; -  init_string_builder(&s, 0); -  SET_ONERROR(err, free_string_builder, &s); -  low_describe_type(&s, type); -  my_binary_strcat(s.s->str, s.s->len); -  CALL_AND_UNSET_ONERROR(err); - } -  +    struct pike_string *describe_type(struct pike_type *type)   {    struct string_builder s;    ONERROR err;    if(!type) return make_shared_string("mixed");    init_string_builder(&s, 0);    SET_ONERROR(err, free_string_builder, &s);    low_describe_type(&s, type);    UNSET_ONERROR(err);    return finish_string_builder(&s);
pike.git/src/pike_types.c:3223:   #endif   static struct pike_type *low_match_types(struct pike_type *a,    struct pike_type *b,    int flags)   #ifdef PIKE_TYPE_DEBUG   {    int e;    char *s;       if (l_flag>2) { -  dynamic_buffer save_buf; -  init_buf(&save_buf); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat("low_match_types("); -  my_describe_type(a); -  my_strcat(",\n"); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat(" "); -  my_describe_type(b); -  my_strcat(",\n"); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat(" "); +  fprintf(stderr, "%*slow_match_types(", indent*2, ""); +  simple_describe_type(a); +  fprintf(stderr, ",\n"); +  fprintf(stderr, "%*s%s", indent*2, "", " "); +  simple_describe_type(b); +  fprintf(stderr, ",\n"); +  fprintf(stderr, "%*s%s", indent*2, "", " ");       if (flags) {    int f = 0;    if (flags & A_EXACT) { -  my_strcat("A_EXACT"); +  fprintf(stderr, "A_EXACT");    f = 1;    }    if (flags & B_EXACT) {    if (f) { -  my_strcat(" | "); +  fprintf(stderr, " | ");    } -  my_strcat("B_EXACT"); +  fprintf(stderr, "B_EXACT");    f = 1;    }    if (flags & NO_MAX_ARGS) {    if (f) { -  my_strcat(" | "); +  fprintf(stderr," | ");    } -  my_strcat("NO_MAX_ARGS"); +  fprintf(stderr, "NO_MAX_ARGS");    f = 1;    }    if (flags & NO_SHORTCUTS) {    if (f) { -  my_strcat(" | "); +  fprintf(stderr, " | ");    } -  my_strcat("NO_SHORTCUTS"); +  fprintf(stderr, "NO_SHORTCUTS");    f = 1;    }    } else { -  my_strcat("0"); +  fputc('0', stderr);    } -  my_strcat(");\n"); -  fprintf(stderr,"%s",(s=simple_free_buf(&save_buf))); -  free(s); +  fprintf(stderr, ");\n");    indent++;    }       a = low_match_types2(a, b, flags);       if (l_flag>2) { -  dynamic_buffer save_buf; +     indent--; -  init_buf(&save_buf); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat("= "); +  fprintf(stderr, "%*s= ", indent*2, "");    if(a) -  my_describe_type(a); +  simple_describe_type(a);    else -  my_strcat("NULL"); -  my_strcat("\n"); -  fprintf(stderr,"%s",(s=simple_free_buf(&save_buf))); -  free(s); +  fprintf(stderr, "NULL"); +  fputc('\n', stderr);    }    return a;   }      static struct pike_type *low_match_types2(struct pike_type *a,    struct pike_type *b,    int flags)   #endif   {    int correct_args;
pike.git/src/pike_types.c:3361:    tmp = pop_unfinished_type();       type_stack_mark();    low_or_pike_types(a_markers[m], tmp, 0);    if(a_markers[m]) free_type(a_markers[m]);    free_type(tmp);    a_markers[m] = pop_unfinished_type();      #ifdef PIKE_TYPE_DEBUG    if (l_flag>2) { -  dynamic_buffer save_buf; -  char *s; -  int e; -  init_buf(&save_buf); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat("a_markers["); -  my_putchar((char)(m+'0')); -  my_strcat("]="); -  my_describe_type(a_markers[m]); -  my_strcat("\n"); -  fprintf(stderr,"%s",(s=simple_free_buf(&save_buf))); -  free(s); +  fprintf(stderr, "%*sa_markers[%d]=", +  indent*2, "", m); +  simple_describe_type(a_markers[m]); +  fputc('\n', stderr);    }   #endif   #ifdef PIKE_DEBUG    if(a_markers[m]->type == m+'0')    Pike_fatal("Cyclic type!\n");   #endif    }    return ret;    }    case '0': case '1': case '2': case '3': case '4':
pike.git/src/pike_types.c:3464:    push_finished_type_with_markers(a, a_markers, 0);    tmp=pop_unfinished_type();       type_stack_mark();    low_or_pike_types(b_markers[m], tmp, 0);    if(b_markers[m]) free_type(b_markers[m]);    free_type(tmp);    b_markers[m] = pop_unfinished_type();   #ifdef PIKE_TYPE_DEBUG    if (l_flag>2) { -  dynamic_buffer save_buf; -  char *s; -  int e; -  init_buf(&save_buf); -  for(e=0;e<indent;e++) my_strcat(" "); -  my_strcat("b_markers["); -  my_putchar((char)(m+'0')); -  my_strcat("]="); -  my_describe_type(b_markers[m]); -  my_strcat("\n"); -  fprintf(stderr,"%s",(s=simple_free_buf(&save_buf))); -  free(s); +  fprintf(stderr, "%*sb_markers[%d]=", +  indent*2, "", m); +  simple_describe_type(b_markers[m]); +  fputc('\n', stderr);    }   #endif   #ifdef PIKE_DEBUG    if(b_markers[m]->type == m+'0')    Pike_fatal("Cyclic type!\n");   #endif    }    return ret;    }    case '0': case '1': case '2': case '3': case '4':