Bug 460865 - Read barrier for cx->fp. r=mrbkap, r=dmandelin.
This commit is contained in:
@@ -680,7 +680,7 @@ static JSBool
|
||||
Namespace(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
return NamespaceHelper(cx,
|
||||
(cx->fp->flags & JSFRAME_CONSTRUCTING) ? obj : NULL,
|
||||
JS_IsConstructing(cx) ? obj : NULL,
|
||||
argc, argv, rval);
|
||||
}
|
||||
|
||||
@@ -814,7 +814,7 @@ out:
|
||||
static JSBool
|
||||
QName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
{
|
||||
return QNameHelper(cx, (cx->fp->flags & JSFRAME_CONSTRUCTING) ? obj : NULL,
|
||||
return QNameHelper(cx, JS_IsConstructing(cx) ? obj : NULL,
|
||||
&js_QNameClass.base, argc, argv, rval);
|
||||
}
|
||||
|
||||
@@ -822,7 +822,7 @@ static JSBool
|
||||
AttributeName(JSContext *cx, JSObject *obj, uintN argc, jsval *argv,
|
||||
jsval *rval)
|
||||
{
|
||||
return QNameHelper(cx, (cx->fp->flags & JSFRAME_CONSTRUCTING) ? obj : NULL,
|
||||
return QNameHelper(cx, JS_IsConstructing(cx) ? obj : NULL,
|
||||
&js_AttributeNameClass, argc, argv, rval);
|
||||
}
|
||||
|
||||
@@ -1873,7 +1873,7 @@ ParseXMLSource(JSContext *cx, JSString *src)
|
||||
chars [offset + dstlen] = 0;
|
||||
|
||||
xml = NULL;
|
||||
for (fp = cx->fp; fp && !fp->regs; fp = fp->down)
|
||||
for (fp = js_GetTopStackFrame(cx); fp && !fp->regs; fp = fp->down)
|
||||
JS_ASSERT(!fp->script);
|
||||
filename = NULL;
|
||||
lineno = 1;
|
||||
@@ -1892,7 +1892,8 @@ ParseXMLSource(JSContext *cx, JSString *src)
|
||||
if (!js_InitParseContext(cx, &pc, NULL, NULL, chars, length, NULL,
|
||||
filename, lineno))
|
||||
goto out;
|
||||
pn = js_ParseXMLText(cx, cx->fp->scopeChain, &pc, JS_FALSE);
|
||||
pn = js_ParseXMLText(cx, js_GetTopStackFrame(cx)->scopeChain, &pc,
|
||||
JS_FALSE);
|
||||
if (pn && XMLArrayInit(cx, &nsarray, 1)) {
|
||||
if (GetXMLSettingFlags(cx, &flags))
|
||||
xml = ParseNodeToXML(cx, &pc, pn, &nsarray, flags);
|
||||
@@ -7263,7 +7264,7 @@ XML(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
*rval = OBJECT_TO_JSVAL(xobj);
|
||||
xml = (JSXML *) JS_GetPrivate(cx, xobj);
|
||||
|
||||
if ((cx->fp->flags & JSFRAME_CONSTRUCTING) && !JSVAL_IS_PRIMITIVE(v)) {
|
||||
if (JS_IsConstructing(cx) && !JSVAL_IS_PRIMITIVE(v)) {
|
||||
vobj = JSVAL_TO_OBJECT(v);
|
||||
clasp = OBJ_GET_CLASS(cx, vobj);
|
||||
if (clasp == &js_XMLClass ||
|
||||
@@ -7291,7 +7292,7 @@ XMLList(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
|
||||
if (JSVAL_IS_NULL(v) || JSVAL_IS_VOID(v))
|
||||
v = STRING_TO_JSVAL(cx->runtime->emptyString);
|
||||
|
||||
if ((cx->fp->flags & JSFRAME_CONSTRUCTING) && !JSVAL_IS_PRIMITIVE(v)) {
|
||||
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);
|
||||
@@ -7710,7 +7711,7 @@ js_GetDefaultXMLNamespace(JSContext *cx, jsval *vp)
|
||||
JSObject *ns, *obj, *tmp;
|
||||
jsval v;
|
||||
|
||||
fp = cx->fp;
|
||||
fp = js_GetTopStackFrame(cx);
|
||||
ns = fp->xmlNamespace;
|
||||
if (ns) {
|
||||
*vp = OBJECT_TO_JSVAL(ns);
|
||||
@@ -7758,7 +7759,7 @@ js_SetDefaultXMLNamespace(JSContext *cx, jsval v)
|
||||
return JS_FALSE;
|
||||
v = OBJECT_TO_JSVAL(ns);
|
||||
|
||||
fp = cx->fp;
|
||||
fp = js_GetTopStackFrame(cx);
|
||||
varobj = fp->varobj;
|
||||
if (varobj) {
|
||||
if (!OBJ_DEFINE_PROPERTY(cx, varobj, JS_DEFAULT_XML_NAMESPACE_ID, v,
|
||||
@@ -7950,7 +7951,7 @@ js_FindXMLProperty(JSContext *cx, jsval nameval, JSObject **objp, jsid *idp)
|
||||
if (!IsFunctionQName(cx, qn, &funid))
|
||||
return JS_FALSE;
|
||||
|
||||
obj = cx->fp->scopeChain;
|
||||
obj = js_GetTopStackFrame(cx)->scopeChain;
|
||||
do {
|
||||
/* Skip any With object that can wrap XML. */
|
||||
target = obj;
|
||||
@@ -8163,7 +8164,7 @@ js_StepXMLListFilter(JSContext *cx, JSBool initialized)
|
||||
JSXML *xml, *list;
|
||||
JSXMLFilter *filter;
|
||||
|
||||
sp = cx->fp->regs->sp;
|
||||
sp = js_GetTopStackFrame(cx)->regs->sp;
|
||||
if (!initialized) {
|
||||
/*
|
||||
* We haven't iterated yet, so initialize the filter based on the
|
||||
|
||||
Reference in New Issue
Block a user