mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 572577 - Change NativeIterator::allocate to accept a vector of ids rather than separate pointer/length. r=gal
--HG-- extra : rebase_source : a7b3993ec46a83e3f70bb1c2975028e1273bb044
This commit is contained in:
parent
e993047657
commit
5fbb5b9367
@ -232,8 +232,9 @@ EnumerateDenseArrayProperties(JSContext *cx, JSObject *obj, JSObject *pobj, uint
|
|||||||
|
|
||||||
NativeIterator *
|
NativeIterator *
|
||||||
NativeIterator::allocate(JSContext *cx, JSObject *obj, uintN flags, uint32 *sarray, uint32 slength,
|
NativeIterator::allocate(JSContext *cx, JSObject *obj, uintN flags, uint32 *sarray, uint32 slength,
|
||||||
uint32 key, jsval *parray, uint32 plength)
|
uint32 key, AutoValueVector &props)
|
||||||
{
|
{
|
||||||
|
size_t plength = props.length();
|
||||||
NativeIterator *ni = (NativeIterator *)
|
NativeIterator *ni = (NativeIterator *)
|
||||||
cx->malloc(sizeof(NativeIterator) + plength * sizeof(jsval) + slength * sizeof(uint32));
|
cx->malloc(sizeof(NativeIterator) + plength * sizeof(jsval) + slength * sizeof(uint32));
|
||||||
if (!ni)
|
if (!ni)
|
||||||
@ -242,7 +243,7 @@ NativeIterator::allocate(JSContext *cx, JSObject *obj, uintN flags, uint32 *sarr
|
|||||||
ni->props_array = ni->props_cursor = (jsval *) (ni + 1);
|
ni->props_array = ni->props_cursor = (jsval *) (ni + 1);
|
||||||
ni->props_end = ni->props_array + plength;
|
ni->props_end = ni->props_array + plength;
|
||||||
if (plength)
|
if (plength)
|
||||||
memcpy(ni->props_array, parray, plength * sizeof(jsval));
|
memcpy(ni->props_array, props.begin(), plength * sizeof(jsval));
|
||||||
ni->shapes_array = (uint32 *) ni->props_end;
|
ni->shapes_array = (uint32 *) ni->props_end;
|
||||||
ni->shapes_length = slength;
|
ni->shapes_length = slength;
|
||||||
ni->shapes_key = key;
|
ni->shapes_key = key;
|
||||||
@ -414,8 +415,7 @@ IdVectorToIterator(JSContext *cx, JSObject *obj, uintN flags, AutoValueVector &p
|
|||||||
|
|
||||||
*vp = OBJECT_TO_JSVAL(iterobj);
|
*vp = OBJECT_TO_JSVAL(iterobj);
|
||||||
|
|
||||||
NativeIterator *ni = NativeIterator::allocate(cx, obj, flags, NULL, 0, 0,
|
NativeIterator *ni = NativeIterator::allocate(cx, obj, flags, NULL, 0, 0, props);
|
||||||
props.begin(), props.length());
|
|
||||||
if (!ni)
|
if (!ni)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -496,8 +496,7 @@ GetIterator(JSContext *cx, JSObject *obj, uintN flags, jsval *vp)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
NativeIterator *ni =
|
NativeIterator *ni =
|
||||||
NativeIterator::allocate(cx, obj, flags, shapes.begin(), shapes.length(), key,
|
NativeIterator::allocate(cx, obj, flags, shapes.begin(), shapes.length(), key, props);
|
||||||
props.begin(), props.length());
|
|
||||||
if (!ni)
|
if (!ni)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ struct NativeIterator {
|
|||||||
|
|
||||||
static NativeIterator *allocate(JSContext *cx, JSObject *obj, uintN flags,
|
static NativeIterator *allocate(JSContext *cx, JSObject *obj, uintN flags,
|
||||||
uint32 *sarray, uint32 slength, uint32 key,
|
uint32 *sarray, uint32 slength, uint32 key,
|
||||||
jsval *parray, uint32 plength);
|
js::AutoValueVector &props);
|
||||||
|
|
||||||
void mark(JSTracer *trc);
|
void mark(JSTracer *trc);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user