bug 493457 - uniform access to private slots. r=mrbkap, sr=jwalden

This commit is contained in:
Igor Bukanov
2009-08-04 23:06:55 +02:00
parent 17d2abc28b
commit 197b514c3f
20 changed files with 291 additions and 373 deletions

View File

@@ -1967,7 +1967,7 @@ ToXML(JSContext *cx, jsval v)
} else {
obj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, obj)) {
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (xml->xml_class == JSXML_CLASS_LIST) {
if (xml->xml_kids.length != 1)
goto bad;
@@ -2048,12 +2048,12 @@ ToXMLList(JSContext *cx, jsval v)
} else {
obj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, obj)) {
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (xml->xml_class != JSXML_CLASS_LIST) {
listobj = js_NewXMLObject(cx, JSXML_CLASS_LIST);
if (!listobj)
return NULL;
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
if (!Append(cx, list, xml))
return NULL;
return listobj;
@@ -2092,7 +2092,7 @@ ToXMLList(JSContext *cx, jsval v)
listobj = js_NewXMLObject(cx, JSXML_CLASS_LIST);
if (listobj) {
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
for (i = 0; i < length; i++) {
kid = OrphanXMLChild(cx, xml, i);
if (!kid || !Append(cx, list, kid)) {
@@ -2961,7 +2961,7 @@ ToXMLString(JSContext *cx, jsval v, uint32 toSourceFlag)
}
/* Handle non-element cases in this switch, returning from each case. */
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
return XMLToXMLString(cx, xml, NULL, toSourceFlag | 0);
}
@@ -3213,7 +3213,6 @@ static JSXML *
DeepCopy(JSContext *cx, JSXML *xml, JSObject *obj, uintN flags)
{
JSXML *copy;
JSBool ok;
/* Our caller may not be protecting newborns with a local root scope. */
if (!js_EnterLocalRootScope(cx))
@@ -3222,14 +3221,11 @@ DeepCopy(JSContext *cx, JSXML *xml, JSObject *obj, uintN flags)
if (copy) {
if (obj) {
/* Caller provided the object for this copy, hook 'em up. */
ok = JS_SetPrivate(cx, obj, copy);
if (ok)
copy->object = obj;
} else {
ok = js_GetXMLObject(cx, copy) != NULL;
}
if (!ok)
obj->setPrivate(copy);
copy->object = obj;
} else if (!js_GetXMLObject(cx, copy)) {
copy = NULL;
}
}
js_LeaveLocalRootScopeWithResult(cx, (jsval) copy);
return copy;
@@ -3470,7 +3466,7 @@ Descendants(JSContext *cx, JSXML *xml, jsval id)
listobj = js_NewXMLObject(cx, JSXML_CLASS_LIST);
if (!listobj)
return NULL;
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
if (funid)
return list;
@@ -3620,7 +3616,7 @@ Equals(JSContext *cx, JSXML *xml, jsval v, JSBool *bp)
if (!OBJECT_IS_XML(cx, vobj)) {
*bp = JS_FALSE;
} else {
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
if (!XMLEquals(cx, xml, vxml, bp))
return JS_FALSE;
}
@@ -3661,7 +3657,7 @@ Insert(JSContext *cx, JSXML *xml, uint32 i, jsval v)
if (!JSVAL_IS_PRIMITIVE(v)) {
vobj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, vobj)) {
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
if (vxml->xml_class == JSXML_CLASS_LIST) {
n = vxml->xml_kids.length;
if (n == 0)
@@ -3755,7 +3751,7 @@ Replace(JSContext *cx, JSXML *xml, uint32 i, jsval v)
if (!JSVAL_IS_PRIMITIVE(v)) {
vobj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, vobj))
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
}
switch (vxml ? JSXMLClass(vxml->xml_class) : JSXML_CLASS_LIMIT) {
@@ -4005,7 +4001,7 @@ GetProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
roots[1] = OBJECT_TO_JSVAL(listobj);
tvr.count++;
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
if (!GetNamedProperty(cx, xml, nameqn, list)) {
listobj = NULL;
} else {
@@ -4091,7 +4087,7 @@ PutProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
if (!JSVAL_IS_PRIMITIVE(*vp)) {
vobj = JSVAL_TO_OBJECT(*vp);
if (OBJECT_IS_XML(cx, vobj))
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
}
ok = js_EnterLocalRootScope(cx);
@@ -4184,7 +4180,7 @@ PutProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
if (JSVAL_IS_PRIMITIVE(attrval)) /* no such attribute */
goto out;
attrobj = JSVAL_TO_OBJECT(attrval);
attr = (JSXML *) JS_GetPrivate(cx, attrobj);
attr = (JSXML *) attrobj->getAssignedPrivate();
if (JSXML_LENGTH(attr) != 0)
goto out;
@@ -4290,7 +4286,7 @@ PutProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
ok = GetProperty(cx, parentobj, id, vp);
if (!ok)
goto out;
attr = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(*vp));
attr = (JSXML *) JSVAL_TO_OBJECT(*vp)->getAssignedPrivate();
/* 2(e)(iii) - the length check comes from the bug 375406. */
if (attr->xml_kids.length != 0)
@@ -4383,7 +4379,7 @@ PutProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
if (!vobj)
goto bad;
roots[VAL_ROOT] = *vp = OBJECT_TO_JSVAL(vobj);
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
}
XMLARRAY_SET_MEMBER(&xml->xml_kids, i, vxml);
}
@@ -4646,7 +4642,7 @@ PutProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
vobj = js_NewXMLObject(cx, JSXML_CLASS_ELEMENT);
if (!vobj)
goto bad;
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
vxml->parent = xml;
vxml->name = nameqn;
@@ -4748,7 +4744,7 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result)
id = OBJECT_TO_JSVAL(targetprop);
if (!GetProperty(cx, base->object, id, &tv))
return JS_FALSE;
target = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(tv));
target = (JSXML *) JSVAL_TO_OBJECT(tv)->getAssignedPrivate();
if (JSXML_LENGTH(target) == 0) {
if (base->xml_class == JSXML_CLASS_LIST && JSXML_LENGTH(base) > 1) {
@@ -4760,7 +4756,7 @@ ResolveValue(JSContext *cx, JSXML *list, JSXML **result)
return JS_FALSE;
if (!GetProperty(cx, base->object, id, &tv))
return JS_FALSE;
target = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(tv));
target = (JSXML *) JSVAL_TO_OBJECT(tv)->getAssignedPrivate();
}
*result = target;
@@ -4838,7 +4834,7 @@ HasFunctionProperty(JSContext *cx, JSObject *obj, jsid funid, JSBool *found)
if (prop) {
OBJ_DROP_PROPERTY(cx, pobj, prop);
} else {
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (HasSimpleContent(xml)) {
/*
* Search in String.prototype to set found whenever
@@ -4871,7 +4867,7 @@ HasProperty(JSContext *cx, JSObject *obj, jsval id, JSBool *found)
JSObject *qn;
jsid funid;
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (js_IdIsIndex(id, &i)) {
*found = HasIndexedProperty(xml, i);
} else {
@@ -4891,9 +4887,7 @@ HasProperty(JSContext *cx, JSObject *obj, jsval id, JSBool *found)
static void
xml_finalize(JSContext *cx, JSObject *obj)
{
JSXML *xml;
xml = (JSXML *) JS_GetPrivate(cx, obj);
JSXML *xml = (JSXML *) obj->getPrivate();
if (!xml)
return;
if (xml->object == obj)
@@ -4952,7 +4946,7 @@ xml_lookupProperty(JSContext *cx, JSObject *obj, jsid id, JSObject **objp,
JSScopeProperty *sprop;
v = ID_TO_VALUE(id);
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (js_IdIsIndex(v, &i)) {
found = HasIndexedProperty(xml, i);
} else {
@@ -5064,7 +5058,7 @@ xml_deleteProperty(JSContext *cx, JSObject *obj, jsid id, jsval *rval)
jsid funid;
idval = ID_TO_VALUE(id);
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (js_IdIsIndex(idval, &index)) {
if (xml->xml_class != JSXML_CLASS_LIST) {
/* See NOTE in spec: this variation is reserved for future use. */
@@ -5107,7 +5101,7 @@ xml_defaultValue(JSContext *cx, JSObject *obj, JSType hint, jsval *vp)
if (hint == JSTYPE_OBJECT) {
/* Called from for..in code in js_Interpret: return an XMLList. */
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (xml->xml_class != JSXML_CLASS_LIST) {
obj = ToXMLList(cx, OBJECT_TO_JSVAL(obj));
if (!obj)
@@ -5128,7 +5122,7 @@ xml_enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
uint32 length, index;
JSXMLArrayCursor *cursor;
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *)obj->getAssignedPrivate();
length = JSXML_LENGTH(xml);
switch (enum_op) {
@@ -5176,9 +5170,7 @@ xml_hasInstance(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
static void
xml_trace(JSTracer *trc, JSObject *obj)
{
JSXML *xml;
xml = (JSXML *) JS_GetPrivate(trc->context, obj);
JSXML *xml = (JSXML *) obj->getPrivate();
if (xml)
JS_CALL_TRACER(trc, xml, JSTRACE_XML, "private");
}
@@ -5261,7 +5253,7 @@ js_EnumerateXMLValues(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
JSObject *kidobj;
JS_ASSERT(JS_InstanceOf(cx, obj, &js_XMLClass, NULL));
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
length = JSXML_LENGTH(xml);
JS_ASSERT(INT_FITS_IN_JSVAL(length));
@@ -5323,12 +5315,12 @@ js_TestXMLEquality(JSContext *cx, JSObject *obj, jsval v, JSBool *bp)
jsdouble d, d2;
JS_ASSERT(JS_InstanceOf(cx, obj, &js_XMLClass, NULL));
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
vxml = NULL;
if (!JSVAL_IS_PRIMITIVE(v)) {
vobj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, vobj))
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
}
if (xml->xml_class == JSXML_CLASS_LIST) {
@@ -5406,21 +5398,21 @@ js_ConcatenateXML(JSContext *cx, JSObject *obj, jsval v, jsval *vp)
goto out;
}
list = (JSXML *) JS_GetPrivate(cx, listobj);
lxml = (JSXML *) JS_GetPrivate(cx, obj);
list = (JSXML *) listobj->getAssignedPrivate();
lxml = (JSXML *) obj->getAssignedPrivate();
ok = Append(cx, list, lxml);
if (!ok)
goto out;
if (VALUE_IS_XML(cx, v)) {
rxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
rxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
} else {
robj = ToXML(cx, v);
if (!robj) {
ok = JS_FALSE;
goto out;
}
rxml = (JSXML *) JS_GetPrivate(cx, robj);
rxml = (JSXML *) robj->getAssignedPrivate();
}
ok = Append(cx, list, rxml);
if (!ok)
@@ -5557,7 +5549,7 @@ xml_appendChild(JSContext *cx, uintN argc, jsval *vp)
JS_ASSERT(!JSVAL_IS_PRIMITIVE(v));
vobj = JSVAL_TO_OBJECT(v);
JS_ASSERT(OBJECT_IS_XML(cx, vobj));
vxml = (JSXML *) JS_GetPrivate(cx, vobj);
vxml = (JSXML *) vobj->getAssignedPrivate();
JS_ASSERT(vxml->xml_class == JSXML_CLASS_LIST);
if (!IndexToIdVal(cx, vxml->xml_kids.length, &name))
@@ -5620,7 +5612,7 @@ xml_list_helper(JSContext *cx, JSXML *xml, jsval *rval)
return NULL;
*rval = OBJECT_TO_JSVAL(listobj);
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
list->xml_target = xml;
return list;
}
@@ -5686,7 +5678,7 @@ xml_child(JSContext *cx, uintN argc, jsval *vp)
}
JS_ASSERT(!JSVAL_IS_PRIMITIVE(v));
vxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
vxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
if ((!JSXML_HAS_KIDS(vxml) || vxml->xml_kids.length != 0) &&
!Append(cx, list, vxml)) {
break;
@@ -5768,7 +5760,7 @@ xml_comments_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval *vp)
js_LeaveLocalRootScopeWithResult(cx, v);
if (!ok)
break;
vxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
vxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
if (JSXML_LENGTH(vxml) != 0) {
ok = Append(cx, list, vxml);
if (!ok)
@@ -5898,7 +5890,7 @@ xml_elements_helper(JSContext *cx, JSObject *obj, JSXML *xml,
js_LeaveLocalRootScopeWithResult(cx, v);
if (!ok)
break;
vxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
vxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
if (JSXML_LENGTH(vxml) != 0) {
ok = Append(cx, list, vxml);
if (!ok)
@@ -5992,7 +5984,7 @@ again:
if (!kidobj)
return JS_FALSE;
obj = kidobj;
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
goto again;
}
}
@@ -6170,7 +6162,7 @@ xml_insertChildAfter(JSContext *cx, uintN argc, jsval *vp)
} else {
if (!VALUE_IS_XML(cx, arg))
return JS_TRUE;
kid = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(arg));
kid = (JSXML *) JSVAL_TO_OBJECT(arg)->getAssignedPrivate();
i = XMLARRAY_FIND_MEMBER(&xml->xml_kids, kid, NULL);
if (i == XML_NOT_FOUND)
return JS_TRUE;
@@ -6202,7 +6194,7 @@ xml_insertChildBefore(JSContext *cx, uintN argc, jsval *vp)
} else {
if (!VALUE_IS_XML(cx, arg))
return JS_TRUE;
kid = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(arg));
kid = (JSXML *) JSVAL_TO_OBJECT(arg)->getAssignedPrivate();
i = XMLARRAY_FIND_MEMBER(&xml->xml_kids, kid, NULL);
if (i == XML_NOT_FOUND)
return JS_TRUE;
@@ -6521,7 +6513,7 @@ xml_processingInstructions_helper(JSContext *cx, JSObject *obj, JSXML *xml,
js_LeaveLocalRootScopeWithResult(cx, v);
if (!ok)
break;
vxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
vxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
if (JSXML_LENGTH(vxml) != 0) {
ok = Append(cx, list, vxml);
if (!ok)
@@ -6696,7 +6688,7 @@ xml_replace(JSContext *cx, uintN argc, jsval *vp)
} else {
value = vp[3];
vxml = VALUE_IS_XML(cx, value)
? (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(value))
? (JSXML *) JSVAL_TO_OBJECT(value)->getAssignedPrivate()
: NULL;
if (!vxml) {
if (!JS_ConvertValue(cx, value, JSTYPE_STRING, &vp[3]))
@@ -6991,7 +6983,7 @@ xml_text_helper(JSContext *cx, JSObject *obj, JSXML *xml, jsval *vp)
js_LeaveLocalRootScopeWithResult(cx, v);
if (!ok)
return JS_FALSE;
vxml = (JSXML *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(v));
vxml = (JSXML *) JSVAL_TO_OBJECT(v)->getAssignedPrivate();
if (JSXML_LENGTH(vxml) != 0 && !Append(cx, list, vxml))
return JS_FALSE;
}
@@ -7264,7 +7256,7 @@ XML(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
if (!xobj)
return JS_FALSE;
*rval = OBJECT_TO_JSVAL(xobj);
xml = (JSXML *) JS_GetPrivate(cx, xobj);
xml = (JSXML *) xobj->getAssignedPrivate();
if (JS_IsConstructing(cx) && !JSVAL_IS_PRIMITIVE(v)) {
vobj = JSVAL_TO_OBJECT(v);
@@ -7297,14 +7289,14 @@ XMLList(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
if (JS_IsConstructing(cx) && !JSVAL_IS_PRIMITIVE(v)) {
vobj = JSVAL_TO_OBJECT(v);
if (OBJECT_IS_XML(cx, vobj)) {
xml = (JSXML *) JS_GetPrivate(cx, vobj);
xml = (JSXML *) vobj->getAssignedPrivate();
if (xml->xml_class == JSXML_CLASS_LIST) {
listobj = js_NewXMLObject(cx, JSXML_CLASS_LIST);
if (!listobj)
return JS_FALSE;
*rval = OBJECT_TO_JSVAL(listobj);
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
if (!Append(cx, list, xml))
return JS_FALSE;
return JS_TRUE;
@@ -7470,10 +7462,9 @@ NewXMLObject(JSContext *cx, JSXML *xml)
JSObject *obj;
obj = js_NewObject(cx, &js_XMLClass, NULL, NULL);
if (!obj || !JS_SetPrivate(cx, obj, xml)) {
cx->weakRoots.newborn[GCX_OBJECT] = NULL;
if (!obj)
return NULL;
}
obj->setPrivate(xml);
METER(xml_stats.xmlobj);
return obj;
}
@@ -7485,7 +7476,7 @@ js_GetXMLObject(JSContext *cx, JSXML *xml)
obj = xml->object;
if (obj) {
JS_ASSERT(JS_GetPrivate(cx, obj) == xml);
JS_ASSERT(obj->getAssignedPrivate() == xml);
return obj;
}
@@ -7562,8 +7553,9 @@ js_InitXMLClass(JSContext *cx, JSObject *obj)
return NULL;
xml = js_NewXML(cx, JSXML_CLASS_TEXT);
if (!xml || !JS_SetPrivate(cx, proto, xml))
if (!xml)
return NULL;
proto->setPrivate(xml);
xml->object = proto;
METER(xml_stats.xmlobj);
@@ -7955,7 +7947,7 @@ js_FindXMLProperty(JSContext *cx, jsval nameval, JSObject **objp, jsid *idp)
if (OBJECT_IS_XML(cx, target)) {
if (funid == 0) {
xml = (JSXML *) JS_GetPrivate(cx, target);
xml = (JSXML *) target->getAssignedPrivate();
found = HasNamedProperty(xml, qn);
} else {
if (!HasFunctionProperty(cx, target, funid, &found))
@@ -8019,7 +8011,7 @@ GetXMLFunction(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
tvr.u.object = target;
}
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (HasSimpleContent(xml)) {
/* Search in String.prototype to implement 11.2.2.1 Step 3(f). */
ok = js_GetClassPrototype(cx, NULL, INT_TO_JSID(JSProto_String),
@@ -8071,7 +8063,7 @@ js_DeleteXMLListElements(JSContext *cx, JSObject *listobj)
JSXML *list;
uint32 n;
list = (JSXML *) JS_GetPrivate(cx, listobj);
list = (JSXML *) listobj->getAssignedPrivate();
for (n = list->xml_kids.length; n != 0; --n)
DeleteListElement(cx, list, 0);
@@ -8089,9 +8081,7 @@ typedef struct JSXMLFilter {
static void
xmlfilter_trace(JSTracer *trc, JSObject *obj)
{
JSXMLFilter *filter;
filter = (JSXMLFilter *) JS_GetPrivate(trc->context, obj);
JSXMLFilter *filter = (JSXMLFilter *) obj->getPrivate();
if (!filter)
return;
@@ -8111,9 +8101,7 @@ xmlfilter_trace(JSTracer *trc, JSObject *obj)
static void
xmlfilter_finalize(JSContext *cx, JSObject *obj)
{
JSXMLFilter *filter;
filter = (JSXMLFilter *) JS_GetPrivate(cx, obj);
JSXMLFilter *filter = (JSXMLFilter *) obj->getPrivate();
if (!filter)
return;
@@ -8149,7 +8137,7 @@ js_StepXMLListFilter(JSContext *cx, JSBool initialized)
return JS_FALSE;
}
obj = JSVAL_TO_OBJECT(sp[-2]);
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (xml->xml_class == JSXML_CLASS_LIST) {
list = xml;
@@ -8163,7 +8151,7 @@ js_StepXMLListFilter(JSContext *cx, JSBool initialized)
* as it may be the only root holding xml.
*/
sp[-1] = OBJECT_TO_JSVAL(obj);
list = (JSXML *) JS_GetPrivate(cx, obj);
list = (JSXML *) obj->getAssignedPrivate();
if (!Append(cx, list, xml))
return JS_FALSE;
}
@@ -8178,14 +8166,14 @@ js_StepXMLListFilter(JSContext *cx, JSBool initialized)
return JS_FALSE;
/*
* Init all filter fields before JS_SetPrivate exposes it to
* Init all filter fields before setPrivate exposes it to
* xmlfilter_trace or xmlfilter_finalize.
*/
filter->list = list;
filter->result = NULL;
filter->kid = NULL;
XMLArrayCursorInit(&filter->cursor, &list->xml_kids);
JS_SetPrivate(cx, filterobj, filter);
filterobj->setPrivate(filter);
/* Store filterobj to use in the later iterations. */
sp[-2] = OBJECT_TO_JSVAL(filterobj);
@@ -8195,13 +8183,13 @@ js_StepXMLListFilter(JSContext *cx, JSBool initialized)
return JS_FALSE;
/* This also roots resobj. */
filter->result = (JSXML *) JS_GetPrivate(cx, resobj);
filter->result = (JSXML *) resobj->getAssignedPrivate();
} else {
/* We have iterated at least once. */
JS_ASSERT(!JSVAL_IS_PRIMITIVE(sp[-2]));
JS_ASSERT(OBJ_GET_CLASS(cx, JSVAL_TO_OBJECT(sp[-2])) ==
&js_XMLFilterClass);
filter = (JSXMLFilter *) JS_GetPrivate(cx, JSVAL_TO_OBJECT(sp[-2]));
filter = (JSXMLFilter *) JSVAL_TO_OBJECT(sp[-2])->getAssignedPrivate();
JS_ASSERT(filter->kid);
/* Check if the filter expression wants to append the element. */
@@ -8253,7 +8241,7 @@ js_CloneXMLObject(JSContext *cx, JSObject *obj)
if (!GetXMLSettingFlags(cx, &flags))
return NULL;
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (flags & (XSF_IGNORE_COMMENTS |
XSF_IGNORE_PROCESSING_INSTRUCTIONS |
XSF_IGNORE_WHITESPACE)) {
@@ -8287,7 +8275,7 @@ js_NewXMLSpecialObject(JSContext *cx, JSXMLClass xml_class, JSString *name,
obj = js_NewXMLObject(cx, xml_class);
if (!obj)
return NULL;
xml = (JSXML *) JS_GetPrivate(cx, obj);
xml = (JSXML *) obj->getAssignedPrivate();
if (name) {
qn = NewXMLQName(cx, cx->runtime->emptyString, NULL, name);
if (!qn)