Branch: Tag:

2014-12-04

2014-12-04 19:24:03 by Arne Goedeke <el@laramies.com>

Revert "propagate CLEAR_ON_EXIT flag in string operations"

This reverts commit c39be4e9c6787f7a03bdb7ab7f1506fdacaf972c.

2741:   #define STRING_BITOP(OP,STROP) \    case T_STRING: \    { \ -  struct pike_string *s, *a, *b; \ +  struct pike_string *s; \    ptrdiff_t len, i; \ -  a = sp[-2].u.string; \ -  b = sp[-1].u.string; \ -  len = a->len; \ -  if (len != b->len) \ +  \ +  len = sp[-2].u.string->len; \ +  if (len != sp[-1].u.string->len) \    PIKE_ERROR("`" #OP, "Bitwise "STROP \    " on strings of different lengths.\n", sp, 2); \ -  if(!a->size_shift && !b->size_shift) \ +  if(!sp[-2].u.string->size_shift && !sp[-1].u.string->size_shift) \    { \    s = begin_shared_string(len); \    for (i=0; i<len; i++) \ -  s->str[i] = a->str[i] OP b->str[i]; \ +  s->str[i] = sp[-2].u.string->str[i] OP sp[-1].u.string->str[i]; \    }else{ \    s = begin_wide_shared_string(len, \ -  MAXIMUM(a->size_shift, \ -  b->size_shift)); \ +  MAXIMUM(sp[-2].u.string->size_shift, \ +  sp[-1].u.string->size_shift)); \    for (i=0; i<len; i++) \ -  low_set_index(s,i,index_shared_string(a,i) OP \ -  index_shared_string(b,i)); \ +  low_set_index(s,i,index_shared_string(sp[-2].u.string,i) OP \ +  index_shared_string(sp[-1].u.string,i)); \    } \ -  s = end_shared_string(s); \ -  s->flags |= (a->flags | b->flags) & STRING_CLEAR_ON_EXIT; \ +     pop_n_elems(2); \ -  push_string(s); \ +  push_string(end_shared_string(s)); \    return; \    }