pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:1548:    "string|object|int|float|array|mapping|multiset", sp-args,    "Incompatible types\n");    return; /* compiler hint */       case BIT_STRING:    {    struct pike_string *r;    PCHARP buf;    ptrdiff_t tmp;    int max_shift=0; -  +  unsigned char tmp_flags, tmp_min, tmp_max;    if(args==1) return;       size=0;    for(e=-args;e<0;e++)    {    size+=sp[e].u.string->len;    if(sp[e].u.string->size_shift > max_shift)    max_shift=sp[e].u.string->size_shift;    }   
pike.git/src/operators.c:1572:    return;    }    else if(args == 2 && (size == sp[-1].u.string->len))    {    stack_swap();    pop_stack();    return;    }       tmp=sp[-args].u.string->len; +  tmp_flags = sp[-args].u.string->flags; +  tmp_min = sp[-args].u.string->min; +  tmp_max = sp[-args].u.string->max; +     r=new_realloc_shared_string(sp[-args].u.string,size,max_shift); -  +  +  r->flags |= tmp_flags & ~15; +  r->min = tmp_min; +  r->max = tmp_max; +     mark_free_svalue (sp - args);    buf=MKPCHARP_STR_OFF(r,tmp);    for(e=-args+1;e<0;e++)    { -  +  if( sp[e].u.string->len ) +  { +  update_flags_for_add( r, sp[e].u.string );    pike_string_cpy(buf,sp[e].u.string);    INC_PCHARP(buf,sp[e].u.string->len);    } -  +  }    SET_SVAL(sp[-args], T_STRING, 0, string, low_end_shared_string(r)); -  for(e=-args+1;e<0;e++) free_string(sp[e].u.string); +  +  for(e=-args+1;e<0;e++) +  free_string(sp[e].u.string); +     sp-=args-1;       break;    }       case BIT_STRING | BIT_INT:    case BIT_STRING | BIT_FLOAT:    case BIT_STRING | BIT_FLOAT | BIT_INT:    {    struct pike_string *r;