pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:11280:    }    if (t) free_type(t);   #endif /* 0 */    }    type_stack_mark();    push_finished_type_with_markers(fun_type, b_markers, 0);    res = pop_unfinished_type();    if (tmp) free_type(tmp);       if ((Pike_compiler->compiler_pass == COMPILER_PASS_LAST) && sval) { -  while (tmp2->type == PIKE_T_NAME) { +  while (tmp2 && (tmp2->type == PIKE_T_NAME)) {    tmp2 = tmp2->cdr;    }    -  if (tmp2->type == PIKE_T_ATTRIBUTE) { +  if (tmp2 && (tmp2->type == PIKE_T_ATTRIBUTE)) {    struct compilation *c = MAYBE_THIS_COMPILATION;    if (c) {    /* Perform extra argument checking based on the attribute. */    ref_push_string((struct pike_string *)tmp2->car);    push_svalue(sval);    ref_push_type_value(tmp2->cdr);    ref_push_type_value(res);    safe_apply_current(PC_APPLY_ATTRIBUTE_CONSTANT_FUN_NUM, 4);    if (TYPEOF(Pike_sp[-1]) == PIKE_T_TYPE) {    type_stack_mark();