30#define JSSTR_SHORT_STRING_LENGTH 8
35#define JSSTR_MAX_ROPE_DEPTH 100
102 if(left_len <= off) {
104 }
else if(left_len >=
len+off) {
144 if(
ret ||
len <= left_len)
154#define TMP_BUF_SIZE 256
161 unsigned cmp_off = 0, cmp_size;
165 while(cmp_off <
min(left_len, right_len)) {
166 cmp_size =
min(left_len, right_len) - cmp_off;
172 ret =
memcmp(left_buf, right_buf, cmp_size);
179 return left_len - right_len;
199 return ret || len1 == len2 ?
ret : -1;
205 return ret || len1 == len2 ? -
ret : 1;
226 unsigned depth, depth2;
310 static const WCHAR NaNW[] = {
'N',
'a',
'N',0 };
311 static const WCHAR undefinedW[] = {
'u',
'n',
'd',
'e',
'f',
'i',
'n',
'e',
'd',0};
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
const char * wine_dbg_sprintf(const char *format,...)
static const WCHAR undefinedW[]
GLint GLint GLsizei GLsizei GLsizei depth
GLenum GLuint GLenum GLsizei const GLchar * buf
static const WCHAR NaNW[]
static int ropes_cmp(jsstr_rope_t *left, jsstr_rope_t *right)
jsstr_t * jsstr_null_bstr(void)
static void jsstr_init(jsstr_t *str, unsigned len, jsstr_tag_t tag)
static int jsstr_cmp_str(jsstr_t *jsstr, const WCHAR *str, unsigned len)
jsstr_t * jsstr_alloc_len(const WCHAR *buf, unsigned len)
static const WCHAR * jsstr_try_flat(jsstr_t *str)
jsstr_t * jsstr_nan(void)
const WCHAR * jsstr_rope_flatten(jsstr_rope_t *str)
#define JSSTR_SHORT_STRING_LENGTH
void jsstr_free(jsstr_t *str)
BOOL is_null_bstr(jsstr_t *str)
static jsstr_t * undefined_str
static jsstr_t * null_bstr_str
static void jsstr_rope_extract(jsstr_rope_t *str, unsigned off, unsigned len, WCHAR *buf)
static jsstr_t * empty_str
int jsstr_cmp(jsstr_t *str1, jsstr_t *str2)
jsstr_t * jsstr_undefined(void)
jsstr_t * jsstr_empty(void)
jsstr_t * jsstr_concat(jsstr_t *str1, jsstr_t *str2)
const char * debugstr_jsstr(jsstr_t *str)
void jsstr_extract(jsstr_t *str, unsigned off, unsigned len, WCHAR *buf)
#define JSSTR_MAX_ROPE_DEPTH
jsstr_t * jsstr_alloc_buf(unsigned len, WCHAR **buf)
static jsstr_t * jsstr_addref(jsstr_t *str)
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
static BOOL jsstr_is_rope(jsstr_t *str)
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)
static jsstr_rope_t * jsstr_as_rope(jsstr_t *str)
#define memcpy(s1, s2, n)
#define FIELD_OFFSET(t, f)