41#define JSSTR_LENGTH_SHIFT 4
42#define JSSTR_MAX_LENGTH ((1 << (32-JSSTR_LENGTH_SHIFT))-1)
43#define JSSTR_FLAGS_MASK ((1 << JSSTR_LENGTH_SHIFT)-1)
45#define JSSTR_FLAG_LBIT 1
46#define JSSTR_FLAG_FLAT 2
47#define JSSTR_FLAG_TAG_MASK 3
GLdouble GLdouble GLdouble r
GLenum GLuint GLenum GLsizei const GLchar * buf
void jsstr_free(jsstr_t *)
jsstr_t * jsstr_concat(jsstr_t *, jsstr_t *)
static jsstr_t * jsstr_substr(jsstr_t *str, unsigned off, unsigned len)
static jsstr_t * jsstr_addref(jsstr_t *str)
jsstr_t * jsstr_null_bstr(void)
jsstr_t * jsstr_alloc_len(const WCHAR *, unsigned)
static const WCHAR * jsstr_flatten(jsstr_t *str)
HRESULT jsstr_to_bstr(jsstr_t *str, BSTR *r)
static BOOL jsstr_eq(jsstr_t *left, jsstr_t *right)
static void jsstr_release(jsstr_t *str)
static jsstr_inline_t * jsstr_as_inline(jsstr_t *str)
static unsigned jsstr_length(jsstr_t *str)
#define JSSTR_LENGTH_SHIFT
const char * debugstr_jsstr(jsstr_t *)
jsstr_t * jsstr_nan(void)
#define JSSTR_FLAG_TAG_MASK
static BOOL jsstr_is_rope(jsstr_t *str)
const WCHAR * jsstr_rope_flatten(jsstr_rope_t *)
static jsstr_tag_t jsstr_tag(jsstr_t *str)
static jsstr_heap_t * jsstr_as_heap(jsstr_t *str)
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_undefined(void)
jsstr_t * jsstr_empty(void)
static jsstr_rope_t * jsstr_as_rope(jsstr_t *str)
jsstr_t * jsstr_alloc_buf(unsigned, WCHAR **)
void jsstr_extract(jsstr_t *, unsigned, unsigned, WCHAR *)
int jsstr_cmp(jsstr_t *, jsstr_t *)
#define memcpy(s1, s2, n)
#define CONTAINING_RECORD(address, type, field)