44#define JSSTR_LENGTH_SHIFT 4
45#define JSSTR_MAX_LENGTH ((1 << (32-JSSTR_LENGTH_SHIFT))-1)
46#define JSSTR_FLAGS_MASK ((1 << JSSTR_LENGTH_SHIFT)-1)
48#define JSSTR_FLAG_LBIT 1
49#define JSSTR_FLAG_FLAT 2
50#define JSSTR_FLAG_TAG_MASK 3
GLenum GLuint GLenum GLsizei const GLchar * buf
jsstr_t * jsstr_alloc_len(const WCHAR *, unsigned) DECLSPEC_HIDDEN
jsstr_t * jsstr_nan(void) DECLSPEC_HIDDEN
jsstr_t * jsstr_empty(void) DECLSPEC_HIDDEN
const WCHAR * jsstr_rope_flatten(jsstr_rope_t *) DECLSPEC_HIDDEN
static jsstr_t * jsstr_substr(jsstr_t *str, unsigned off, unsigned len)
jsstr_t * jsstr_alloc_buf(unsigned, WCHAR **) DECLSPEC_HIDDEN
static jsstr_t * jsstr_addref(jsstr_t *str)
static const WCHAR * jsstr_flatten(jsstr_t *str)
void jsstr_free(jsstr_t *) DECLSPEC_HIDDEN
BOOL init_strings(void) DECLSPEC_HIDDEN
static BOOL jsstr_eq(jsstr_t *left, jsstr_t *right)
static void jsstr_release(jsstr_t *str)
void jsstr_extract(jsstr_t *, unsigned, unsigned, WCHAR *) DECLSPEC_HIDDEN
static jsstr_inline_t * jsstr_as_inline(jsstr_t *str)
static unsigned jsstr_length(jsstr_t *str)
#define JSSTR_LENGTH_SHIFT
#define JSSTR_FLAG_TAG_MASK
static BOOL jsstr_is_rope(jsstr_t *str)
static jsstr_tag_t jsstr_tag(jsstr_t *str)
const char * debugstr_jsstr(jsstr_t *) DECLSPEC_HIDDEN
static jsstr_heap_t * jsstr_as_heap(jsstr_t *str)
jsstr_t * jsstr_undefined(void) DECLSPEC_HIDDEN
static BOOL jsstr_is_heap(jsstr_t *str)
static unsigned jsstr_flush(jsstr_t *str, WCHAR *buf)
static jsstr_t * jsstr_alloc(const WCHAR *str)
static BOOL jsstr_is_inline(jsstr_t *str)
jsstr_t * jsstr_concat(jsstr_t *, jsstr_t *) DECLSPEC_HIDDEN
jsstr_t * jsstr_null_bstr(void) DECLSPEC_HIDDEN
static jsstr_rope_t * jsstr_as_rope(jsstr_t *str)
BOOL is_null_bstr(jsstr_t *) DECLSPEC_HIDDEN
int jsstr_cmp(jsstr_t *, jsstr_t *) DECLSPEC_HIDDEN
void free_strings(void) DECLSPEC_HIDDEN
#define memcpy(s1, s2, n)
#define CONTAINING_RECORD(address, type, field)