pike.git / src / pike_types.cmod

version» Context lines:

pike.git/src/pike_types.cmod:934:       /* Attempt to propagate the operator towards the leaf nodes. */    switch(t?(t->type & PIKE_T_MASK):PIKE_T_UNKNOWN) {    case '0': case '1': case '2': case '3': case '4':    case '5': case '6': case '7': case '8': case '9':    case T_ASSIGN:    case PIKE_T_OPERATOR:    case PIKE_T_SCOPE:    /* Deferred evaluation. */    if (op & 0x8000) { +  add_ref(arg);    *Pike_compiler->type_stackp = mk_type(op,    *Pike_compiler->type_stackp,    arg,    PT_COPY_BOTH);    } else {    *Pike_compiler->type_stackp = mk_type(op,    *Pike_compiler->type_stackp,    arg,    PT_COPY_CAR);    }
pike.git/src/pike_types.cmod:990:    *Pike_compiler->type_stackp = tmp;    push_type_operator(op, arg);    push_type(binop);    break;    }    default:    *Pike_compiler->type_stackp = apply_type_operator(op, t, arg);    free_type(t);    break;    } -  if (free_arg) { -  free_type(arg); -  } +     TYPE_STACK_DEBUG("push_type_operator");   }      void debug_push_finished_type(struct pike_type *t)   {    copy_pike_type(*(++Pike_compiler->type_stackp), t);       TYPE_STACK_DEBUG("push_finished_type");   }   
pike.git/src/pike_types.cmod:1168:    case T_FLOAT:    case T_MIXED:    case T_VOID:    case T_ZERO:    case PIKE_T_UNKNOWN:    /* Leaf type. */    *(++Pike_compiler->type_stackp) = mk_type(type, NULL, NULL, 0);    break;       case PIKE_T_OPERATOR: +  if (type & 0x8000) { +  struct pike_type *t = *(--Pike_compiler->type_stackp); +  *Pike_compiler->type_stackp = Pike_compiler->type_stackp[1]; +  push_type_operator(type, t); +  free_type(t); +  } else {    push_type_operator(type, NULL); -  +  }    break;       case '0':    case '1':    case '2':    case '3':    case '4':    case '5':    case '6':    case '7':