mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Move obj_is_xml into interp since its not a primitive.
This commit is contained in:
parent
44e0963c4e
commit
b6773c0340
@ -2537,6 +2537,16 @@ DoIncDec(JSContext *cx, JSFrameRegs& regs, const JSCodeSpec *cs, jsval *vp, jsva
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool
|
||||
obj_is_xml(JSContext *cx, JSFrameRegs& regs, JSObject*& obj)
|
||||
{
|
||||
JSObjectMap *map;
|
||||
JSObjectOps *ops;
|
||||
prim_load_map_from_obj(cx, regs, obj, map);
|
||||
prim_load_ops_from_map(cx, regs, map, ops);
|
||||
return guard_ops_are_xml(cx, regs, ops);
|
||||
}
|
||||
|
||||
#define PUSH_STACK(v) prim_push_stack(cx, regs, (v))
|
||||
#define POP_STACK(v) prim_pop_stack(cx, regs, (v))
|
||||
#define STORE_STACK(n,v) prim_store_stack(cx, regs, (n), (v))
|
||||
@ -3770,11 +3780,11 @@ JS_INTERPRET(JSContext *cx, JSInterpreterState *state)
|
||||
if ((JSVAL_IS_OBJECT(lval) && \
|
||||
!guard_jsval_is_null(cx, regs, lval) && \
|
||||
(prim_jsval_to_object(cx, lval, obj2), \
|
||||
guard_obj_is_xml(cx, regs, obj2))) || \
|
||||
obj_is_xml(cx, regs, obj2))) || \
|
||||
(JSVAL_IS_OBJECT(rval) && \
|
||||
!guard_jsval_is_null(cx, regs, rval) && \
|
||||
(prim_jsval_to_object(cx, rval, obj2), \
|
||||
guard_obj_is_xml(cx, regs, obj2)))) { \
|
||||
obj_is_xml(cx, regs, obj2)))) { \
|
||||
JSXMLObjectOps *ops; \
|
||||
\
|
||||
ABORT_TRACE("operations involving XML not traced"); \
|
||||
|
@ -227,18 +227,12 @@ PRIMITIVE(prim_load_ops_from_map)(JSContext *cx, JSFrameRegs& regs,
|
||||
}
|
||||
|
||||
static inline bool
|
||||
PRIMITIVE(prim_ops_are_xml)(JSContext *cx, JSFrameRegs& regs,
|
||||
PRIMITIVE(guard_ops_are_xml)(JSContext *cx, JSFrameRegs& regs,
|
||||
JSObjectOps*& ops)
|
||||
{
|
||||
return ops == &js_XMLObjectOps.base;
|
||||
}
|
||||
|
||||
static inline bool
|
||||
PRIMITIVE(guard_obj_is_xml)(JSContext *cx, JSFrameRegs& regs, JSObject*& obj)
|
||||
{
|
||||
return OBJECT_IS_XML(cx, obj);
|
||||
}
|
||||
|
||||
static inline void
|
||||
PRIMITIVE(call_ValueToNonNullObject)(JSContext* cx, jsval& v, JSObject*& obj)
|
||||
{
|
||||
|
@ -528,24 +528,9 @@ prim_load_map_from_obj(JSContext *cx, JSFrameRegs& regs, JSObject*& obj,
|
||||
static inline bool
|
||||
guard_ops_are_xml(JSContext *cx, JSFrameRegs& regs, JSObjectOps*& ops)
|
||||
{
|
||||
bool ok = interp_prim_ops_are_xml(cx, regs, ops);
|
||||
bool ok = interp_guard_ops_are_xml(cx, regs, ops);
|
||||
recorder(cx)->guard_eqi(ok, &ops, (int)&js_XMLObjectOps.base, regs);
|
||||
return ok;
|
||||
}
|
||||
|
||||
/*
|
||||
* XXX want to move to an interp helper, but guard_ops_are_xml isn't visible
|
||||
* except in jstracer.cpp mode, so it breaks compilation.
|
||||
*/
|
||||
static inline bool
|
||||
guard_obj_is_xml(JSContext* cx, JSFrameRegs& regs, JSObject*& obj)
|
||||
{
|
||||
JSObjectMap *map;
|
||||
JSObjectOps *ops;
|
||||
prim_load_map_from_obj(cx, regs, obj, map);
|
||||
prim_load_ops_from_map(cx, regs, map, ops);
|
||||
|
||||
return guard_ops_are_xml(cx, regs, ops);
|
||||
}
|
||||
|
||||
#endif /* jstracerinlines_h___ */
|
||||
|
Loading…
Reference in New Issue
Block a user