Main Page | Class List | Directories | File List | Class Members | File Members

stralloc.h File Reference

#include "global.h"
#include <stdarg.h>
#include "pike_macros.h"
#include "block_alloc_h.h"

Go to the source code of this file.

Classes

struct  pike_string
struct  string_builder

Defines

#define STRINGS_ARE_SHARED
#define PIKE_STRING_CONTENTS
#define APPEND_SIGNED   1
#define APPEND_WIDTH_HALF   2
#define APPEND_WIDTH_LONG   4
#define APPEND_WIDTH_LONG_LONG   6
#define APPEND_WIDTH_MASK   6
#define APPEND_POSITIVE   8
#define APPEND_UPPER_CASE   16
#define APPEND_ZERO_PAD   32
#define APPEND_LEFT   64
#define APPEND_WIDTH_PTR   0
#define free_string(s)
#define my_hash_string(X)   PTR_TO_INT(X)
#define is_same_string(X, Y)   ((X)==(Y))
#define STR0(X)   ((p_wchar0 *)(X)->str)
#define STR1(X)   ((p_wchar1 *)(X)->str)
#define STR2(X)   ((p_wchar2 *)(X)->str)
#define INDEX_CHARP(PTR, IND, SHIFT)   ((SHIFT)==0?((p_wchar0 *)(PTR))[(IND)]:(SHIFT)==1?((p_wchar1 *)(PTR))[(IND)]:((p_wchar2 *)(PTR))[(IND)])
#define SET_INDEX_CHARP(PTR, IND, SHIFT, VAL)   ((SHIFT)==0?(((p_wchar0 *)(PTR))[(IND)]=(VAL)):(SHIFT)==1?(((p_wchar1 *)(PTR))[(IND)]=(VAL)):(((p_wchar2 *)(PTR))[(IND)]=(VAL)))
#define EXTRACT_CHARP(PTR, SHIFT)   INDEX_CHARP((PTR),0,(SHIFT))
#define CHARP_ADD(PTR, X, SHIFT)   (PTR)+=(X)<<(SHIFT)
#define INDEX_PCHARP(X, Y)   INDEX_CHARP((X).ptr,(Y),(X).shift)
#define SET_INDEX_PCHARP(X, Y, Z)   SET_INDEX_CHARP((X).ptr,(Y),(X).shift,(Z))
#define EXTRACT_PCHARP(X)   INDEX_CHARP((X).ptr,(0),(X).shift)
#define INC_PCHARP(X, Y)   (((X).ptr)+=(Y) << (X).shift)
#define LOW_COMPARE_PCHARP(X, CMP, Y)   (((char *)((X).ptr)) CMP ((char *)((Y).ptr)))
#define LOW_SUBTRACT_PCHARP(X, Y)   (LOW_COMPARE_PCHARP((X),-,(Y))>>(X).shift)
#define SUBTRACT_PCHARP(X, Y)   LOW_SUBTRACT_PCHARP((X),(Y))
#define COMPARE_PCHARP(X, CMP, Y)   LOW_COMPARE_PCHARP((X),CMP,(Y))
#define MKPCHARP_OFF(PTR, SHIFT, OFF)   MKPCHARP( ((char *)(PTR)) + ((OFF)<<(SHIFT)), (SHIFT))
#define MKPCHARP_STR(STR)   MKPCHARP((STR)->str, (STR)->size_shift)
#define MKPCHARP_STR_OFF(STR, OFF)   MKPCHARP((STR)->str + ((OFF)<<(STR)->size_shift), (STR)->size_shift)
#define ADD_PCHARP(PTR, I)   MKPCHARP_OFF((PTR).ptr,(PTR).shift,(I))
#define reference_shared_string(s)   add_ref(s)
#define copy_shared_string(to, s)   add_ref((to)=(s))
#define MAKE_CONST_STRING(var, text)
#define MAKE_CONST_STRING_CODE(var, code)
#define REF_MAKE_CONST_STRING(var, text)
#define REF_MAKE_CONST_STRING_CODE(var, code)
#define MAKE_CONSTANT_SHARED_STRING(var, text)   REF_MAKE_CONST_STRING(var, text)
#define convert_0_to_0(X, Y, Z)   MEMCPY((char *)(X),(char *)(Y),(Z))
#define convert_1_to_1(X, Y, Z)   MEMCPY((char *)(X),(char *)(Y),(Z)<<1)
#define convert_2_to_2(X, Y, Z)   MEMCPY((char *)(X),(char *)(Y),(Z)<<2)
#define compare_0_to_0(X, Y, Z)   MEMCMP((char *)(X),(char *)(Y),(Z))
#define compare_1_to_1(X, Y, Z)   MEMCMP((char *)(X),(char *)(Y),(Z)<<1)
#define compare_2_to_2(X, Y, Z)   MEMCMP((char *)(X),(char *)(Y),(Z)<<2)
#define CONVERT(FROM, TO)
#define ISCONSTSTR(X, Y)   c_compare_string((X),Y,sizeof(Y)-sizeof(""))
#define make_shared_string   debug_make_shared_string
#define make_shared_binary_string   debug_make_shared_binary_string
#define make_shared_string0   debug_make_shared_string0
#define make_shared_binary_string0   debug_make_shared_binary_string0
#define make_shared_string1   debug_make_shared_string1
#define make_shared_binary_string1   debug_make_shared_binary_string1
#define make_shared_string2   debug_make_shared_string2
#define make_shared_binary_string2   debug_make_shared_binary_string2
#define begin_shared_string   debug_begin_shared_string
#define begin_wide_shared_string   debug_begin_wide_shared_string
#define make_shared_pcharp   debug_make_shared_pcharp
#define make_shared_binary_pcharp   debug_make_shared_binary_pcharp

Functions

PMOD_EXPORT unsigned INT32 index_shared_string (struct pike_string *s, ptrdiff_t pos)
PMOD_EXPORT void low_set_index (struct pike_string *s, ptrdiff_t pos, int value)
PMOD_EXPORT struct pike_stringdebug_check_size_shift (struct pike_string *a, int shift)
PMOD_EXPORT int generic_compare_strings (const void *a, ptrdiff_t alen, int asize, const void *b, ptrdiff_t blen, int bsize)
PMOD_EXPORT void generic_memcpy (PCHARP to, PCHARP from, ptrdiff_t len)
PMOD_EXPORT void pike_string_cpy (PCHARP to, struct pike_string *from)
PMOD_EXPORT struct pike_stringbinary_findstring (const char *foo, ptrdiff_t l)
PMOD_EXPORT struct pike_stringfindstring (const char *foo)
 BLOCK_ALLOC (short_pike_string0, SHORT_STRING_BLOCK)
 BLOCK_ALLOC (short_pike_string1, SHORT_STRING_BLOCK)
 BLOCK_ALLOC (short_pike_string2, SHORT_STRING_BLOCK)
PMOD_EXPORT struct pike_stringdebug_begin_shared_string (size_t len)
PMOD_EXPORT struct pike_stringdebug_begin_wide_shared_string (size_t len, int shift)
PMOD_EXPORT struct pike_stringlow_end_shared_string (struct pike_string *s)
PMOD_EXPORT struct pike_stringend_shared_string (struct pike_string *s)
PMOD_EXPORT struct pike_stringend_and_resize_shared_string (struct pike_string *str, ptrdiff_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_binary_string (const char *str, size_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_binary_pcharp (const PCHARP str, size_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_pcharp (const PCHARP str)
PMOD_EXPORT struct pike_stringdebug_make_shared_binary_string0 (const p_wchar0 *str, size_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_binary_string1 (const p_wchar1 *str, size_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_binary_string2 (const p_wchar2 *str, size_t len)
PMOD_EXPORT struct pike_stringdebug_make_shared_string (const char *str)
PMOD_EXPORT struct pike_stringdebug_make_shared_string0 (const p_wchar0 *str)
PMOD_EXPORT struct pike_stringdebug_make_shared_string1 (const p_wchar1 *str)
PMOD_EXPORT struct pike_stringdebug_make_shared_string2 (const p_wchar2 *str)
PMOD_EXPORT void unlink_pike_string (struct pike_string *s)
PMOD_EXPORT void do_free_string (struct pike_string *s)
PMOD_EXPORT void do_really_free_string (struct pike_string *s)
PMOD_EXPORT void do_really_free_pike_string (struct pike_string *s)
PMOD_EXPORT void really_free_string (struct pike_string *s)
PMOD_EXPORT void debug_free_string (struct pike_string *s)
pike_stringadd_string_status (int verbose)
PMOD_EXPORT void check_string (struct pike_string *s)
PMOD_EXPORT void verify_shared_strings_tables (void)
PMOD_EXPORT int safe_debug_findstring (struct pike_string *foo)
PMOD_EXPORT struct pike_stringdebug_findstring (const struct pike_string *foo)
PMOD_EXPORT void debug_dump_pike_string (struct pike_string *s, INT32 max)
void dump_stralloc_strings (void)
PMOD_EXPORT int low_quick_binary_strcmp (char *a, ptrdiff_t alen, char *b, ptrdiff_t blen)
PMOD_EXPORT ptrdiff_t generic_quick_binary_strcmp (const char *a, ptrdiff_t alen, int asize, const char *b, ptrdiff_t blen, int bsize)
PMOD_EXPORT int c_compare_string (struct pike_string *s, char *foo, int len)
PMOD_EXPORT ptrdiff_t my_quick_strcmp (struct pike_string *a, struct pike_string *b)
PMOD_EXPORT ptrdiff_t my_strcmp (struct pike_string *a, struct pike_string *b)
PMOD_EXPORT struct pike_stringrealloc_unlinked_string (struct pike_string *a, ptrdiff_t size)
PMOD_EXPORT struct pike_stringrealloc_shared_string (struct pike_string *a, ptrdiff_t size)
PMOD_EXPORT struct pike_stringnew_realloc_shared_string (struct pike_string *a, INT32 size, int shift)
PMOD_EXPORT struct pike_stringmodify_shared_string (struct pike_string *a, INT32 position, INT32 c)
PMOD_EXPORT struct pike_stringadd_shared_strings (struct pike_string *a, struct pike_string *b)
PMOD_EXPORT struct pike_stringadd_and_free_shared_strings (struct pike_string *a, struct pike_string *b)
PMOD_EXPORT ptrdiff_t string_search (struct pike_string *haystack, struct pike_string *needle, ptrdiff_t start)
PMOD_EXPORT struct pike_stringstring_slice (struct pike_string *s, ptrdiff_t start, ptrdiff_t len)
PMOD_EXPORT struct pike_stringstring_replace (struct pike_string *str, struct pike_string *del, struct pike_string *to)
void init_shared_string_table (void)
void cleanup_shared_string_table (void)
void count_memory_in_strings (INT32 *num, INT32 *size)
unsigned gc_touch_all_strings (void)
void gc_mark_all_strings (void)
pike_stringnext_pike_string (struct pike_string *s)
PMOD_EXPORT void init_string_builder (struct string_builder *s, int mag)
PMOD_EXPORT void init_string_builder_alloc (struct string_builder *s, ptrdiff_t length, int mag)
PMOD_EXPORT void init_string_builder_copy (struct string_builder *to, struct string_builder *from)
PMOD_EXPORT int init_string_builder_with_string (struct string_builder *s, struct pike_string *str)
PMOD_EXPORT void string_build_mkspace (struct string_builder *s, ptrdiff_t chars, int mag)
PMOD_EXPORT void * string_builder_allocate (struct string_builder *s, ptrdiff_t chars, int mag)
PMOD_EXPORT void string_builder_putchar (struct string_builder *s, int ch)
PMOD_EXPORT void string_builder_binary_strcat0 (struct string_builder *s, const p_wchar0 *str, ptrdiff_t len)
PMOD_EXPORT void string_builder_binary_strcat1 (struct string_builder *s, const p_wchar1 *str, ptrdiff_t len)
PMOD_EXPORT void string_builder_binary_strcat2 (struct string_builder *s, const p_wchar2 *str, ptrdiff_t len)
PMOD_EXPORT void string_builder_append (struct string_builder *s, PCHARP from, ptrdiff_t len)
PMOD_EXPORT void string_builder_fill (struct string_builder *s, ptrdiff_t howmany, PCHARP from, ptrdiff_t len, ptrdiff_t offset)
PMOD_EXPORT void string_builder_strcat (struct string_builder *s, char *str)
PMOD_EXPORT void string_builder_shared_strcat (struct string_builder *s, struct pike_string *str)
PMOD_EXPORT void string_builder_append_integer (struct string_builder *s, LONGEST val, unsigned int base, int flags, size_t min_width, size_t precision)
PMOD_EXPORT void string_builder_vsprintf (struct string_builder *s, const char *fmt, va_list args)
PMOD_EXPORT void string_builder_sprintf (struct string_builder *s, const char *fmt,...)
PMOD_EXPORT void reset_string_builder (struct string_builder *s)
PMOD_EXPORT void free_string_builder (struct string_builder *s)
PMOD_EXPORT struct pike_stringfinish_string_builder (struct string_builder *s)
PMOD_EXPORT PCHARP MEMCHR_PCHARP (PCHARP ptr, int chr, ptrdiff_t len)
PMOD_EXPORT long STRTOL_PCHARP (PCHARP str, PCHARP *ptr, int base)
PMOD_EXPORT int string_to_svalue_inumber (struct svalue *r, char *str, char **ptr, int base, int maxlength)
PMOD_EXPORT int wide_string_to_svalue_inumber (struct svalue *r, void *str, void *ptr, int base, ptrdiff_t maxlength, int shift)
PMOD_EXPORT int pcharp_to_svalue_inumber (struct svalue *r, PCHARP str, PCHARP *ptr, int base, ptrdiff_t maxlength)
PMOD_EXPORT int convert_stack_top_string_to_inumber (int base)
PMOD_EXPORT double STRTOD_PCHARP (PCHARP nptr, PCHARP *endptr)
PMOD_EXPORT p_wchar0require_wstring0 (struct pike_string *s, char **to_free)
PMOD_EXPORT p_wchar1require_wstring1 (struct pike_string *s, char **to_free)
PMOD_EXPORT p_wchar2require_wstring2 (struct pike_string *s, char **to_free)
PMOD_PROTO void f_sprintf (INT32 num_arg)

Variables

PMOD_EXPORT struct pike_stringempty_pike_string


Define Documentation

#define ADD_PCHARP PTR,
 )     MKPCHARP_OFF((PTR).ptr,(PTR).shift,(I))
 

#define APPEND_LEFT   64
 

#define APPEND_POSITIVE   8
 

#define APPEND_SIGNED   1
 

#define APPEND_UPPER_CASE   16
 

#define APPEND_WIDTH_HALF   2
 

#define APPEND_WIDTH_LONG   4
 

#define APPEND_WIDTH_LONG_LONG   6
 

#define APPEND_WIDTH_MASK   6
 

#define APPEND_WIDTH_PTR   0
 

#define APPEND_ZERO_PAD   32
 

#define begin_shared_string   debug_begin_shared_string
 

#define begin_wide_shared_string   debug_begin_wide_shared_string
 

#define CHARP_ADD PTR,
X,
SHIFT   )     (PTR)+=(X)<<(SHIFT)
 

#define compare_0_to_0 X,
Y,
 )     MEMCMP((char *)(X),(char *)(Y),(Z))
 

#define compare_1_to_1 X,
Y,
 )     MEMCMP((char *)(X),(char *)(Y),(Z)<<1)
 

#define compare_2_to_2 X,
Y,
 )     MEMCMP((char *)(X),(char *)(Y),(Z)<<2)
 

#define COMPARE_PCHARP X,
CMP,
 )     LOW_COMPARE_PCHARP((X),CMP,(Y))
 

#define CONVERT FROM,
TO   ) 
 

Value:

void PIKE_CONCAT4(convert_,FROM,_to_,TO)(PIKE_CONCAT(p_wchar,TO) *to, const PIKE_CONCAT(p_wchar,FROM) *from, ptrdiff_t len); \
INT32 PIKE_CONCAT4(compare_,FROM,_to_,TO)(const PIKE_CONCAT(p_wchar,TO) *to, const PIKE_CONCAT(p_wchar,FROM) *from, ptrdiff_t len);

#define convert_0_to_0 X,
Y,
 )     MEMCPY((char *)(X),(char *)(Y),(Z))
 

#define convert_1_to_1 X,
Y,
 )     MEMCPY((char *)(X),(char *)(Y),(Z)<<1)
 

#define convert_2_to_2 X,
Y,
 )     MEMCPY((char *)(X),(char *)(Y),(Z)<<2)
 

#define copy_shared_string to,
 )     add_ref((to)=(s))
 

#define EXTRACT_CHARP PTR,
SHIFT   )     INDEX_CHARP((PTR),0,(SHIFT))
 

#define EXTRACT_PCHARP  )     INDEX_CHARP((X).ptr,(0),(X).shift)
 

#define free_string  ) 
 

Value:

do{ \
    struct pike_string *_=(s); \
    debug_malloc_touch(_); \
    if(sub_ref(_)<=0) \
      really_free_string(_); \
  } while(0)

#define INC_PCHARP X,
 )     (((X).ptr)+=(Y) << (X).shift)
 

#define INDEX_CHARP PTR,
IND,
SHIFT   )     ((SHIFT)==0?((p_wchar0 *)(PTR))[(IND)]:(SHIFT)==1?((p_wchar1 *)(PTR))[(IND)]:((p_wchar2 *)(PTR))[(IND)])
 

#define INDEX_PCHARP X,
 )     INDEX_CHARP((X).ptr,(Y),(X).shift)
 

#define is_same_string X,
 )     ((X)==(Y))
 

#define ISCONSTSTR X,
 )     c_compare_string((X),Y,sizeof(Y)-sizeof(""))
 

#define LOW_COMPARE_PCHARP X,
CMP,
 )     (((char *)((X).ptr)) CMP ((char *)((Y).ptr)))
 

#define LOW_SUBTRACT_PCHARP X,
 )     (LOW_COMPARE_PCHARP((X),-,(Y))>>(X).shift)
 

#define MAKE_CONST_STRING var,
text   ) 
 

Value:

do { static struct pike_string *str_;                                          \
    if(!str_) str_=make_shared_binary_string((text),CONSTANT_STRLEN(text));     \
    var = str_;                                                                 \
 }while(0)

#define MAKE_CONST_STRING_CODE var,
code   ) 
 

Value:

do {                            \
    static struct pike_string *str_;                                    \
    if (!str_) {                                                        \
      {code;}                                                           \
      str_ = var;                                                       \
      DO_IF_DEBUG (                                                     \
        if (!str_)                                                      \
          Pike_fatal ("Code at " __FILE__ ":" DEFINETOSTR (__LINE__)    \
                      " failed to produce a string in " #var ".\n");    \
      );                                                                \
    }                                                                   \
    else var = str_;                                                    \
  } while (0)

#define MAKE_CONSTANT_SHARED_STRING var,
text   )     REF_MAKE_CONST_STRING(var, text)
 

#define make_shared_binary_pcharp   debug_make_shared_binary_pcharp
 

#define make_shared_binary_string   debug_make_shared_binary_string
 

#define make_shared_binary_string0   debug_make_shared_binary_string0
 

#define make_shared_binary_string1   debug_make_shared_binary_string1
 

#define make_shared_binary_string2   debug_make_shared_binary_string2
 

#define make_shared_pcharp   debug_make_shared_pcharp
 

#define make_shared_string   debug_make_shared_string
 

#define make_shared_string0   debug_make_shared_string0
 

#define make_shared_string1   debug_make_shared_string1
 

#define make_shared_string2   debug_make_shared_string2
 

#define MKPCHARP_OFF PTR,
SHIFT,
OFF   )     MKPCHARP( ((char *)(PTR)) + ((OFF)<<(SHIFT)), (SHIFT))
 

#define MKPCHARP_STR STR   )     MKPCHARP((STR)->str, (STR)->size_shift)
 

#define MKPCHARP_STR_OFF STR,
OFF   )     MKPCHARP((STR)->str + ((OFF)<<(STR)->size_shift), (STR)->size_shift)
 

#define my_hash_string  )     PTR_TO_INT(X)
 

#define PIKE_STRING_CONTENTS
 

Value:

INT32 refs;                                                             \
  INT32 size_shift; /* 30 bit waste, but good for alignment... */       \
  ptrdiff_t len; /* Not counting terminating NUL. */                    \
  size_t hval;                                                          \
  struct pike_string *next

#define REF_MAKE_CONST_STRING var,
text   ) 
 

Value:

do {                            \
    MAKE_CONST_STRING(var, text);                                       \
    reference_shared_string(var);                                       \
  } while (0)

#define REF_MAKE_CONST_STRING_CODE var,
code   ) 
 

Value:

do {                    \
    MAKE_CONST_STRING_CODE(var, code);                                  \
    reference_shared_string(var);                                       \
  } while (0)

#define reference_shared_string  )     add_ref(s)
 

#define SET_INDEX_CHARP PTR,
IND,
SHIFT,
VAL   )     ((SHIFT)==0?(((p_wchar0 *)(PTR))[(IND)]=(VAL)):(SHIFT)==1?(((p_wchar1 *)(PTR))[(IND)]=(VAL)):(((p_wchar2 *)(PTR))[(IND)]=(VAL)))
 

#define SET_INDEX_PCHARP X,
Y,
 )     SET_INDEX_CHARP((X).ptr,(Y),(X).shift,(Z))
 

#define STR0  )     ((p_wchar0 *)(X)->str)
 

#define STR1  )     ((p_wchar1 *)(X)->str)
 

#define STR2  )     ((p_wchar2 *)(X)->str)
 

#define STRINGS_ARE_SHARED
 

#define SUBTRACT_PCHARP X,
 )     LOW_SUBTRACT_PCHARP((X),(Y))
 


Function Documentation

PMOD_EXPORT struct pike_string* add_and_free_shared_strings struct pike_string a,
struct pike_string b
 

PMOD_EXPORT struct pike_string* add_shared_strings struct pike_string a,
struct pike_string b
 

struct pike_string* add_string_status int  verbose  ) 
 

PMOD_EXPORT struct pike_string* binary_findstring const char *  foo,
ptrdiff_t  l
 

BLOCK_ALLOC short_pike_string2  ,
SHORT_STRING_BLOCK 
 

BLOCK_ALLOC short_pike_string1  ,
SHORT_STRING_BLOCK 
 

BLOCK_ALLOC short_pike_string0  ,
SHORT_STRING_BLOCK 
 

PMOD_EXPORT int c_compare_string struct pike_string s,
char *  foo,
int  len
 

PMOD_EXPORT void check_string struct pike_string s  ) 
 

void cleanup_shared_string_table void   ) 
 

PMOD_EXPORT int convert_stack_top_string_to_inumber int  base  ) 
 

void count_memory_in_strings INT32 *  num,
INT32 *  size
 

PMOD_EXPORT struct pike_string* debug_begin_shared_string size_t  len  ) 
 

PMOD_EXPORT struct pike_string* debug_begin_wide_shared_string size_t  len,
int  shift
 

PMOD_EXPORT struct pike_string* debug_check_size_shift struct pike_string a,
int  shift
 

PMOD_EXPORT void debug_dump_pike_string struct pike_string s,
INT32  max
 

PMOD_EXPORT struct pike_string* debug_findstring const struct pike_string foo  ) 
 

PMOD_EXPORT void debug_free_string struct pike_string s  ) 
 

PMOD_EXPORT struct pike_string* debug_make_shared_binary_pcharp const PCHARP  str,
size_t  len
 

PMOD_EXPORT struct pike_string* debug_make_shared_binary_string const char *  str,
size_t  len
 

PMOD_EXPORT struct pike_string* debug_make_shared_binary_string0 const p_wchar0 str,
size_t  len
 

PMOD_EXPORT struct pike_string* debug_make_shared_binary_string1 const p_wchar1 str,
size_t  len
 

PMOD_EXPORT struct pike_string* debug_make_shared_binary_string2 const p_wchar2 str,
size_t  len
 

PMOD_EXPORT struct pike_string* debug_make_shared_pcharp const PCHARP  str  ) 
 

PMOD_EXPORT struct pike_string* debug_make_shared_string const char *  str  ) 
 

PMOD_EXPORT struct pike_string* debug_make_shared_string0 const p_wchar0 str  ) 
 

PMOD_EXPORT struct pike_string* debug_make_shared_string1 const p_wchar1 str  ) 
 

PMOD_EXPORT struct pike_string* debug_make_shared_string2 const p_wchar2 str  ) 
 

PMOD_EXPORT void do_free_string struct pike_string s  ) 
 

PMOD_EXPORT void do_really_free_pike_string struct pike_string s  ) 
 

PMOD_EXPORT void do_really_free_string struct pike_string s  ) 
 

void dump_stralloc_strings void   ) 
 

PMOD_EXPORT struct pike_string* end_and_resize_shared_string struct pike_string str,
ptrdiff_t  len
 

PMOD_EXPORT struct pike_string* end_shared_string struct pike_string s  ) 
 

PMOD_PROTO void f_sprintf INT32  num_arg  ) 
 

PMOD_EXPORT struct pike_string* findstring const char *  foo  ) 
 

PMOD_EXPORT struct pike_string* finish_string_builder struct string_builder s  ) 
 

PMOD_EXPORT void free_string_builder struct string_builder s  ) 
 

void gc_mark_all_strings void   ) 
 

unsigned gc_touch_all_strings void   ) 
 

PMOD_EXPORT int generic_compare_strings const void *  a,
ptrdiff_t  alen,
int  asize,
const void *  b,
ptrdiff_t  blen,
int  bsize
 

PMOD_EXPORT void generic_memcpy PCHARP  to,
PCHARP  from,
ptrdiff_t  len
 

PMOD_EXPORT ptrdiff_t generic_quick_binary_strcmp const char *  a,
ptrdiff_t  alen,
int  asize,
const char *  b,
ptrdiff_t  blen,
int  bsize
 

PMOD_EXPORT unsigned INT32 index_shared_string struct pike_string s,
ptrdiff_t  pos
 

void init_shared_string_table void   ) 
 

PMOD_EXPORT void init_string_builder struct string_builder s,
int  mag
 

PMOD_EXPORT void init_string_builder_alloc struct string_builder s,
ptrdiff_t  length,
int  mag
 

PMOD_EXPORT void init_string_builder_copy struct string_builder to,
struct string_builder from
 

PMOD_EXPORT int init_string_builder_with_string struct string_builder s,
struct pike_string str
 

PMOD_EXPORT struct pike_string* low_end_shared_string struct pike_string s  ) 
 

PMOD_EXPORT int low_quick_binary_strcmp char *  a,
ptrdiff_t  alen,
char *  b,
ptrdiff_t  blen
 

PMOD_EXPORT void low_set_index struct pike_string s,
ptrdiff_t  pos,
int  value
 

PMOD_EXPORT PCHARP MEMCHR_PCHARP PCHARP  ptr,
int  chr,
ptrdiff_t  len
 

PMOD_EXPORT struct pike_string* modify_shared_string struct pike_string a,
INT32  position,
INT32  c
 

PMOD_EXPORT ptrdiff_t my_quick_strcmp struct pike_string a,
struct pike_string b
 

PMOD_EXPORT ptrdiff_t my_strcmp struct pike_string a,
struct pike_string b
 

PMOD_EXPORT struct pike_string* new_realloc_shared_string struct pike_string a,
INT32  size,
int  shift
 

struct pike_string* next_pike_string struct pike_string s  ) 
 

PMOD_EXPORT int pcharp_to_svalue_inumber struct svalue r,
PCHARP  str,
PCHARP ptr,
int  base,
ptrdiff_t  maxlength
 

PMOD_EXPORT void pike_string_cpy PCHARP  to,
struct pike_string from
 

PMOD_EXPORT struct pike_string* realloc_shared_string struct pike_string a,
ptrdiff_t  size
 

PMOD_EXPORT struct pike_string* realloc_unlinked_string struct pike_string a,
ptrdiff_t  size
 

PMOD_EXPORT void really_free_string struct pike_string s  ) 
 

PMOD_EXPORT p_wchar0* require_wstring0 struct pike_string s,
char **  to_free
 

PMOD_EXPORT p_wchar1* require_wstring1 struct pike_string s,
char **  to_free
 

PMOD_EXPORT p_wchar2* require_wstring2 struct pike_string s,
char **  to_free
 

PMOD_EXPORT void reset_string_builder struct string_builder s  ) 
 

PMOD_EXPORT int safe_debug_findstring struct pike_string foo  ) 
 

PMOD_EXPORT void string_build_mkspace struct string_builder s,
ptrdiff_t  chars,
int  mag
 

PMOD_EXPORT void* string_builder_allocate struct string_builder s,
ptrdiff_t  chars,
int  mag
 

PMOD_EXPORT void string_builder_append struct string_builder s,
PCHARP  from,
ptrdiff_t  len
 

PMOD_EXPORT void string_builder_append_integer struct string_builder s,
LONGEST  val,
unsigned int  base,
int  flags,
size_t  min_width,
size_t  precision
 

PMOD_EXPORT void string_builder_binary_strcat0 struct string_builder s,
const p_wchar0 str,
ptrdiff_t  len
 

PMOD_EXPORT void string_builder_binary_strcat1 struct string_builder s,
const p_wchar1 str,
ptrdiff_t  len
 

PMOD_EXPORT void string_builder_binary_strcat2 struct string_builder s,
const p_wchar2 str,
ptrdiff_t  len
 

PMOD_EXPORT void string_builder_fill struct string_builder s,
ptrdiff_t  howmany,
PCHARP  from,
ptrdiff_t  len,
ptrdiff_t  offset
 

PMOD_EXPORT void string_builder_putchar struct string_builder s,
int  ch
 

PMOD_EXPORT void string_builder_shared_strcat struct string_builder s,
struct pike_string str
 

PMOD_EXPORT void string_builder_sprintf struct string_builder s,
const char *  fmt,
  ...
 

PMOD_EXPORT void string_builder_strcat struct string_builder s,
char *  str
 

PMOD_EXPORT void string_builder_vsprintf struct string_builder s,
const char *  fmt,
va_list  args
 

PMOD_EXPORT struct pike_string* string_replace struct pike_string str,
struct pike_string del,
struct pike_string to
 

PMOD_EXPORT ptrdiff_t string_search struct pike_string haystack,
struct pike_string needle,
ptrdiff_t  start
 

PMOD_EXPORT struct pike_string* string_slice struct pike_string s,
ptrdiff_t  start,
ptrdiff_t  len
 

PMOD_EXPORT int string_to_svalue_inumber struct svalue r,
char *  str,
char **  ptr,
int  base,
int  maxlength
 

PMOD_EXPORT double STRTOD_PCHARP PCHARP  nptr,
PCHARP endptr
 

PMOD_EXPORT long STRTOL_PCHARP PCHARP  str,
PCHARP ptr,
int  base
 

PMOD_EXPORT void unlink_pike_string struct pike_string s  ) 
 

PMOD_EXPORT void verify_shared_strings_tables void   ) 
 

PMOD_EXPORT int wide_string_to_svalue_inumber struct svalue r,
void *  str,
void *  ptr,
int  base,
ptrdiff_t  maxlength,
int  shift
 


Variable Documentation

PMOD_EXPORT struct pike_string* empty_pike_string
 


Generated on Fri Jul 22 23:44:30 2005 for Pike by  doxygen 1.3.9.1