Get an interned string - a JSString
that is protected from GC and automatically shared with other code that needs a JSString
with the same value.
Syntax
JSString * JS_InternString(JSContext *cx, const char *s); JSString * JS_InternStringN(JSContext *cx, const char *s, size_t length); JSString * JS_InternUCString(JSContext *cx, const char16_t *s); JSString * JS_InternUCStringN(JSContext *cx, const char16_t *s, size_t length);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
A context. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
s |
const char * or const char16_t * |
Pointer to a character array containing the data for the string. In JS_InternString and JS_InternUCString , the string must be null-terminated. |
length |
size_t |
(only in JS_InternStringN and JS_InternUCStringN ) The length of s in characters. |
Description
JS_InternString
and JS_InternStringN
return an interned JavaScript string with a specified value, s
. JS_InternUCString
and JS_InternUCStringN
are the Unicode versions of the function.
Each JSRuntime
keeps a table of all existing interned strings. If an interned string already exists with the desired value, these functions return the existing string. Otherwise a new string is created and added to the table. Strings created with these functions are protected from garbage collection for the lifetime of the JSRuntime
.
On success, these functions return a pointer to the interned string. Otherwise they report an error and return NULL
.