pike.git
/
src
/
pike_types.c
version
»
Context lines:
10
20
40
80
file
none
3
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':