This article covers features introduced in SpiderMonkey 17
Take ownership of a JSIdArray
and free it later.
Syntax
AutoIdArray(JSContext *cx, JSIdArray *ida);
Name | Type | Description |
---|---|---|
cx |
JSContext * |
The context in which to add the root. Requires request. In a JS_THREADSAFE build, the caller must be in a request on this JSContext . |
ida |
JSIdArray * |
A pointer to JSIdArray to take the ownership. |
Methods
Method | Description |
---|---|
bool operator!() const |
Return true if this has no owned array. |
jsid operator[](size_t i) const |
Return a jsid in specified index of the owned array. |
size_t length() const |
Return the length of the owned array. |
JSIdArray *steal() |
Return the owned array and release the ownership. |
Description
JS::AutoIdArray
takes the ownership of JSIdArray
, and frees it in destructor by calling JS_DestroyIdArray
.
Examples
{ JS::AutoIdArray ids(cx, JS_Enumerate(cx, obj)); if (!ids) // Check the returned value from JS_Enumerate return false; for (int32_t i = 0, len = ids.length(); i < len; i++) { someFunc(cx, ids[i]); } /* when leaving this scope, the JSIdArray returned by JS_Enumerate is freed. */ }