зеркало из https://github.com/mozilla/gecko-dev.git
Bug 678998 - Rename IsFunctionQName to GetLocalNameFromFunctionQName and make it infallible, now that QName's localName slot stores an atom and conversion to jsid can be infallible. r=luke
--HG-- extra : rebase_source : 5f0958ab3053b07ca87eb5955b274e3bd551d23d
This commit is contained in:
Родитель
1b36104399
Коммит
e5483b3b1e
|
@ -774,9 +774,7 @@ js_InternNonIntElementIdSlow(JSContext *cx, JSObject *obj, const Value &idval,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!js_IsFunctionQName(cx, &idval.toObject(), idp))
|
if (js_GetLocalNameFromFunctionQName(&idval.toObject(), idp, cx))
|
||||||
return JS_FALSE;
|
|
||||||
if (!JSID_IS_VOID(*idp))
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return js_ValueToStringId(cx, idval, idp);
|
return js_ValueToStringId(cx, idval, idp);
|
||||||
|
@ -794,9 +792,7 @@ js_InternNonIntElementIdSlow(JSContext *cx, JSObject *obj, const Value &idval,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!js_IsFunctionQName(cx, &idval.toObject(), idp))
|
if (js_GetLocalNameFromFunctionQName(&idval.toObject(), idp, cx)) {
|
||||||
return JS_FALSE;
|
|
||||||
if (!JSID_IS_VOID(*idp)) {
|
|
||||||
*vp = IdToValue(*idp);
|
*vp = IdToValue(*idp);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -538,9 +538,7 @@ js_OnUnknownMethod(JSContext *cx, Value *vp)
|
||||||
/* Extract the function name from function::name qname. */
|
/* Extract the function name from function::name qname. */
|
||||||
if (vp[0].isObject()) {
|
if (vp[0].isObject()) {
|
||||||
obj = &vp[0].toObject();
|
obj = &vp[0].toObject();
|
||||||
if (!js_IsFunctionQName(cx, obj, &id))
|
if (js_GetLocalNameFromFunctionQName(obj, &id, cx))
|
||||||
return false;
|
|
||||||
if (!JSID_IS_VOID(id))
|
|
||||||
vp[0] = IdToValue(id);
|
vp[0] = IdToValue(id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2812,8 +2812,8 @@ ReportBadXMLName(JSContext *cx, const Value &idval)
|
||||||
js_ReportValueError(cx, JSMSG_BAD_XML_NAME, JSDVG_IGNORE_STACK, idval, NULL);
|
js_ReportValueError(cx, JSMSG_BAD_XML_NAME, JSDVG_IGNORE_STACK, idval, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSBool
|
static bool
|
||||||
IsFunctionQName(JSContext *cx, JSObject *qn, jsid *funidp)
|
GetLocalNameFromFunctionQName(JSObject *qn, jsid *funidp, JSContext *cx)
|
||||||
{
|
{
|
||||||
JSAtom *atom = cx->runtime->atomState.functionNamespaceURIAtom;
|
JSAtom *atom = cx->runtime->atomState.functionNamespaceURIAtom;
|
||||||
JSLinearString *uri = qn->getNameURI();
|
JSLinearString *uri = qn->getNameURI();
|
||||||
|
@ -2821,17 +2821,15 @@ IsFunctionQName(JSContext *cx, JSObject *qn, jsid *funidp)
|
||||||
*funidp = ATOM_TO_JSID(qn->getQNameLocalName());
|
*funidp = ATOM_TO_JSID(qn->getQNameLocalName());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
*funidp = JSID_VOID;
|
return false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
JSBool
|
bool
|
||||||
js_IsFunctionQName(JSContext *cx, JSObject *obj, jsid *funidp)
|
js_GetLocalNameFromFunctionQName(JSObject *obj, jsid *funidp, JSContext *cx)
|
||||||
{
|
{
|
||||||
if (obj->getClass() == &js_QNameClass)
|
if (!obj->isQName())
|
||||||
return IsFunctionQName(cx, obj, funidp);
|
return false;
|
||||||
*funidp = JSID_VOID;
|
return GetLocalNameFromFunctionQName(obj, funidp, cx);
|
||||||
return JS_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static JSObject *
|
static JSObject *
|
||||||
|
@ -2899,8 +2897,8 @@ construct:
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
if (!IsFunctionQName(cx, obj, funidp))
|
if (!GetLocalNameFromFunctionQName(obj, funidp, cx))
|
||||||
return NULL;
|
*funidp = JSID_VOID;
|
||||||
return obj;
|
return obj;
|
||||||
|
|
||||||
bad:
|
bad:
|
||||||
|
@ -4979,14 +4977,8 @@ js_GetXMLMethod(JSContext *cx, JSObject *obj, jsid id, Value *vp)
|
||||||
{
|
{
|
||||||
JS_ASSERT(obj->isXML());
|
JS_ASSERT(obj->isXML());
|
||||||
|
|
||||||
if (JSID_IS_OBJECT(id)) {
|
if (JSID_IS_OBJECT(id))
|
||||||
jsid funid;
|
js_GetLocalNameFromFunctionQName(JSID_TO_OBJECT(id), &id, cx);
|
||||||
|
|
||||||
if (!js_IsFunctionQName(cx, JSID_TO_OBJECT(id), &funid))
|
|
||||||
return JS_FALSE;
|
|
||||||
if (!JSID_IS_VOID(funid))
|
|
||||||
id = funid;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* As our callers have a bad habit of passing a pointer to an unrooted
|
* As our callers have a bad habit of passing a pointer to an unrooted
|
||||||
|
@ -7447,8 +7439,8 @@ js_FindXMLProperty(JSContext *cx, const Value &nameval, JSObject **objp, jsid *i
|
||||||
}
|
}
|
||||||
|
|
||||||
qn = nameobj;
|
qn = nameobj;
|
||||||
if (!IsFunctionQName(cx, qn, &funid))
|
if (!GetLocalNameFromFunctionQName(qn, &funid, cx))
|
||||||
return JS_FALSE;
|
funid = JSID_VOID;
|
||||||
|
|
||||||
obj = &js_GetTopStackFrame(cx)->scopeChain();
|
obj = &js_GetTopStackFrame(cx)->scopeChain();
|
||||||
do {
|
do {
|
||||||
|
|
|
@ -280,11 +280,11 @@ extern JSObject *
|
||||||
js_InitXMLClasses(JSContext *cx, JSObject *obj);
|
js_InitXMLClasses(JSContext *cx, JSObject *obj);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If obj is QName corresponding to function::name, set *funidp to name's id,
|
* If obj is a QName corresponding to function::name, set *funidp to name's id
|
||||||
* otherwise set *funidp to void.
|
* and return true, else return false.
|
||||||
*/
|
*/
|
||||||
JSBool
|
extern bool
|
||||||
js_IsFunctionQName(JSContext *cx, JSObject *obj, jsid *funidp);
|
js_GetLocalNameFromFunctionQName(JSObject *obj, jsid *funidp, JSContext *cx);
|
||||||
|
|
||||||
extern JSBool
|
extern JSBool
|
||||||
js_GetDefaultXMLNamespace(JSContext *cx, jsval *vp);
|
js_GetDefaultXMLNamespace(JSContext *cx, jsval *vp);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче