pike.git / src / stralloc.c

version» Context lines:

pike.git/src/stralloc.c:410:   }      PMOD_EXPORT p_wchar2 generic_extract (const void *str, int size, ptrdiff_t pos)   {    switch(size)    {    case 0: return ((p_wchar0 *)str)[pos];    case 1: return ((p_wchar1 *)str)[pos];    case 2: return ((p_wchar2 *)str)[pos];    } -  Pike_fatal("Unsupported string shift: %d\n", size); -  return 0; +  UNREACHABLE(return 0);   }      static void locate_problem(int (*isproblem)(const struct pike_string *))   {    unsigned INT32 e;    struct pike_string *s;    DM(struct memhdr *yes=alloc_memhdr());    DM(struct memhdr *no=alloc_memhdr());       for(e=0;e<htable_size;e++)
pike.git/src/stralloc.c:897:   /*    * This function checks if the shift size can be decreased before    * entering the string in the shared string table    */   PMOD_EXPORT struct pike_string *end_shared_string(struct pike_string *s)   {    struct pike_string *s2;       switch(UNLIKELY(s->size_shift))    { -  default: - #ifdef PIKE_DEBUG -  Pike_fatal("ARGHEL! size_shift:%d\n", s->size_shift); -  +     case 2: - #endif +     switch(find_magnitude2(STR2(s),s->len))    {    case 0:    s2=begin_shared_string(s->len);    convert_2_to_0(STR0(s2),STR2(s),s->len);    free_string(s);    s=s2;    break;       case 1:
pike.git/src/stralloc.c:977:   PMOD_EXPORT struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,size_t len)   {    switch(str.shift)    {    case 0:    return make_shared_binary_string((char *)(str.ptr), len);    case 1:    return make_shared_binary_string1((p_wchar1 *)(str.ptr), len);    case 2:    return make_shared_binary_string2((p_wchar2 *)(str.ptr), len); - #ifdef PIKE_DEBUG -  default: -  Pike_fatal("Unknown string width!\n"); - #endif +     }    UNREACHABLE(return NULL);   }      PMOD_EXPORT struct pike_string * debug_make_shared_pcharp(const PCHARP str)   {    return debug_make_shared_binary_pcharp(str, pcharp_strlen(str));   }      PMOD_EXPORT struct pike_string * debug_make_shared_binary_string0(const p_wchar0 *str,size_t len)
pike.git/src/stralloc.c:2017:    {    case 0:    return make_shared_binary_string((char *)STR0(s)+start,len);       case 1:    return make_shared_binary_string1(STR1(s)+start,len);       case 2:    return make_shared_binary_string2(STR2(s)+start,len);    } - #ifdef PIKE_DEBUG -  Pike_fatal("Illegal shift size!\n"); - #endif -  return 0; +  UNREACHABLE(return 0);   }      /*** replace function ***/   typedef char *(* replace_searchfunc)(void *,void *,size_t);   PMOD_EXPORT struct pike_string *string_replace(struct pike_string *str,    struct pike_string *del,    struct pike_string *to)   {    struct pike_string *ret;    char *s,*tmp,*end;
pike.git/src/stralloc.c:2076:    str->len,    del);    SET_ONERROR (mojt_uwp, do_free_object, mojt.container);       ret=begin_wide_shared_string(str->len,shift);    switch(str->size_shift)    {    case 0: f=(replace_searchfunc)mojt.vtab->func0; break;    case 1: f=(replace_searchfunc)mojt.vtab->func1; break;    case 2: f=(replace_searchfunc)mojt.vtab->func2; break; - #ifdef PIKE_DEBUG -  default: Pike_fatal("Illegal shift.\n"); - #endif +     }       }else{    INT32 delimeters=0;    mojt=compile_memsearcher(MKPCHARP_STR(del),    del->len,    str->len*2,    del);    SET_ONERROR (mojt_uwp, do_free_object, mojt.container);       switch(str->size_shift)    {    case 0: f=(replace_searchfunc)mojt.vtab->func0; break;    case 1: f=(replace_searchfunc)mojt.vtab->func1; break;    case 2: f=(replace_searchfunc)mojt.vtab->func2; break; - #ifdef PIKE_DEBUG -  default: Pike_fatal("Illegal shift.\n"); - #endif +     }       while((s = f(mojt.data, s, (end-s)>>str->size_shift)))    {    delimeters++;    s+=del->len << str->size_shift;    }       if(!delimeters)    {
pike.git/src/stralloc.c:2469:      PMOD_EXPORT void string_builder_binary_strcat0(struct string_builder *s,    const p_wchar0 *str, ptrdiff_t len)   {    string_build_mkspace(s,len,0);    switch(s->s->size_shift)    {    case 0: convert_0_to_0(STR0(s->s)+s->s->len,str,len); break;    case 1: convert_0_to_1(STR1(s->s)+s->s->len,str,len); break;    case 2: convert_0_to_2(STR2(s->s)+s->s->len,str,len); break; - #ifdef PIKE_DEBUG -  default: -  Pike_fatal ("Illegal magnitude! (%d)\n", s->s->size_shift); - #endif +     }    s->s->len+=len;   }      PMOD_EXPORT void string_builder_binary_strcat1(struct string_builder *s,    const p_wchar1 *str, ptrdiff_t len)   {    if (s->s->size_shift == 0) {    if (find_magnitude1 (str, len) == 0) {    string_build_mkspace (s, len, 0);
pike.git/src/stralloc.c:3249:   }      PMOD_EXPORT PCHARP MEMCHR_PCHARP(const PCHARP ptr, int chr, ptrdiff_t len)   {    switch(ptr.shift)    {    case 0: return MKPCHARP(memchr(ptr.ptr,chr,len),0);    case 1: return MKPCHARP(MEMCHR1((p_wchar1 *)ptr.ptr,chr,len),1);    case 2: return MKPCHARP(MEMCHR2((p_wchar2 *)ptr.ptr,chr,len),2);    } - #ifdef PIKE_DEBUG -  Pike_fatal("Illegal shift in MEMCHR_PCHARP.\n"); - #endif +     UNREACHABLE(MKPCHARP(0,0));   }      #define DIGIT(x) (WIDE_ISDIGIT(x) ? (x) - '0' : \    WIDE_ISLOWER(x) ? (x) + 10 - 'a' : (x) + 10 - 'A')   #define MBASE ('z' - 'a' + 1 + 10)      PMOD_EXPORT long STRTOL_PCHARP(PCHARP str, PCHARP *ptr, int base)   {    /* Note: Code duplication in strtol and pcharp_to_svalue_inumber. */
pike.git/src/stralloc.c:3700:    char **to_free)   {    switch(s->size_shift)    {    case 0:    *to_free=0;    return STR0(s);    case 1:    case 2:    return 0; -  - #ifdef PIKE_DEBUG -  default: -  Pike_fatal("Illegal shift size in string.\n"); - #endif +     } -  return 0; +  UNREACHABLE(return 0);   }      PMOD_EXPORT p_wchar1 *require_wstring1(const struct pike_string *s,    char **to_free)   {    switch(s->size_shift)    {    case 0:    *to_free=xalloc((s->len+1)*2);    convert_0_to_1((p_wchar1 *)*to_free, STR0(s),s->len+1);    return (p_wchar1 *)*to_free;       case 1:    *to_free=0;    return STR1(s);       case 2:    return 0; -  - #ifdef PIKE_DEBUG -  default: -  Pike_fatal("Illegal shift size in string.\n"); - #endif +     } -  return 0; +  UNREACHABLE(return 0);   }         PMOD_EXPORT p_wchar2 *require_wstring2(const struct pike_string *s,    char **to_free)   {    switch(s->size_shift)    {    case 0:    *to_free=xalloc((s->len+1)*4);
pike.git/src/stralloc.c:3753:    return (p_wchar2 *)*to_free;       case 1:    *to_free=xalloc((s->len+1)*4);    convert_1_to_2((p_wchar2 *)*to_free, STR1(s),s->len+1);    return (p_wchar2 *)*to_free;       case 2:    *to_free=0;    return STR2(s); -  - #ifdef PIKE_DEBUG -  default: -  Pike_fatal("Illegal shift size in string.\n"); - #endif +     } -  return 0; +  UNREACHABLE(return 0);   }