pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:12858:    type_stack_mark();    push_int_type(minres, maxres);    return pop_unfinished_type();   }      struct pike_type *type_int_op(enum PIKE_TYPE op,    struct pike_type *arg1,    struct pike_type *arg2)   {    while (1) { -  if (!arg1) { +  if (!arg1 || !arg2) {    return NULL;    }    switch(arg1->type) {    case PIKE_T_ZERO:    case PIKE_T_VOID:    arg1 = int0_type_string;    break; -  +  case T_MIXED: +  arg1 = int_type_string; +  break;    case PIKE_T_ATTRIBUTE:    case PIKE_T_NAME:    arg1 = arg1->cdr;    continue;    } -  break; -  } -  while (1) { -  if (!arg2) { -  return NULL; -  } +     switch(arg2->type) {    case PIKE_T_ZERO:    case PIKE_T_VOID:    arg2 = int0_type_string;    break; -  +  case T_MIXED: +  arg2 = int_type_string; +  break;    case PIKE_T_ATTRIBUTE:    case PIKE_T_NAME:    arg2 = arg2->cdr;    continue;    }    break;    }    if (arg1->type == PIKE_T_OBJECT) {    /* FIXME: Check type for LFUN corresponding to op. */    add_ref(mixed_type_string);