pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.c:7984:
if (funp->id_flags & ID_PRIVATE) { flags = SEE_PRIVATE|SEE_PROTECTED; } else if (funp->id_flags & ID_PROTECTED) { flags = SEE_PROTECTED; } while ((fun_num = really_low_find_variant_identifier(name, prog, NULL, fun_num, flags)) != -1) { int i; struct pike_type *ret;
+
struct call_state cs;
id = ID_FROM_INT(prog, fun_num); add_ref(t = id->type); /* Check whether the type is compatible with our arguments. */ for (i = 0; i < args; i++) { struct pike_type *cont = check_call_svalue(t, 0, Pike_sp+i - (args + expected)); if (!cont && (i >= best)) { if ((i > best) && expected) {
pike.git/src/program.c:8008:
push_type_value(t); expected++; t = NULL; break; } else { free_type(t); } if (!(t = cont)) break; } if (!t) continue;
-
ret = new_get_return_type(t, 0);
+
-
+
INIT_CALL_STATE(cs);
+
ret = new_get_return_type(t, &cs, 0);
+
FREE_CALL_STATE(cs);
+
if (!ret && (i+1 >= best)) { if (((i+1) > best) && expected) { pop_n_elems(expected); expected = 0; } best = i+1; push_type_value(t); expected++; continue; }