зеркало из https://github.com/mozilla/gecko-dev.git
Bug 808519 part 2 - Rename MaybeScriptFromCalleeToken and call it in GetTopIonJSScript. r=dvander
This commit is contained in:
Родитель
1a9d9157e0
Коммит
56817aeb78
|
@ -97,19 +97,9 @@ GetTopIonJSScript(JSContext *cx, const SafepointIndex **safepointIndexOut, void
|
|||
if (returnAddrOut)
|
||||
*returnAddrOut = (void *) iter.returnAddressToFp();
|
||||
|
||||
JS_ASSERT(iter.type() == IonFrame_OptimizedJS);
|
||||
JS_ASSERT(iter.isScripted());
|
||||
IonJSFrameLayout *frame = static_cast<IonJSFrameLayout*>(iter.current());
|
||||
switch (GetCalleeTokenTag(frame->calleeToken())) {
|
||||
case CalleeToken_Function: {
|
||||
JSFunction *fun = CalleeTokenToFunction(frame->calleeToken());
|
||||
return fun->script();
|
||||
}
|
||||
case CalleeToken_Script:
|
||||
return CalleeTokenToScript(frame->calleeToken());
|
||||
default:
|
||||
JS_NOT_REACHED("unexpected callee token kind");
|
||||
return NULL;
|
||||
}
|
||||
return ScriptFromCalleeToken(frame->calleeToken());
|
||||
}
|
||||
|
||||
} // namespace ion
|
||||
|
|
|
@ -26,20 +26,6 @@
|
|||
using namespace js;
|
||||
using namespace js::ion;
|
||||
|
||||
JSScript *
|
||||
ion::MaybeScriptFromCalleeToken(CalleeToken token)
|
||||
{
|
||||
AutoAssertNoGC nogc;
|
||||
switch (GetCalleeTokenTag(token)) {
|
||||
case CalleeToken_Script:
|
||||
return CalleeTokenToScript(token);
|
||||
case CalleeToken_Function:
|
||||
return CalleeTokenToFunction(token)->script();
|
||||
}
|
||||
JS_NOT_REACHED("invalid callee token tag");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
IonFrameIterator::IonFrameIterator(const IonActivationIterator &activations)
|
||||
: current_(activations.top()),
|
||||
type_(IonFrame_Exit),
|
||||
|
@ -174,7 +160,7 @@ IonFrameIterator::script() const
|
|||
{
|
||||
AutoAssertNoGC nogc;
|
||||
JS_ASSERT(isScripted());
|
||||
RawScript script = MaybeScriptFromCalleeToken(calleeToken());
|
||||
RawScript script = ScriptFromCalleeToken(calleeToken());
|
||||
JS_ASSERT(script);
|
||||
return script;
|
||||
}
|
||||
|
|
|
@ -63,8 +63,20 @@ CalleeTokenToScript(CalleeToken token)
|
|||
JS_ASSERT(GetCalleeTokenTag(token) == CalleeToken_Script);
|
||||
return (JSScript *)(uintptr_t(token) & ~uintptr_t(0x3));
|
||||
}
|
||||
JSScript *
|
||||
MaybeScriptFromCalleeToken(CalleeToken token);
|
||||
|
||||
static inline JSScript *
|
||||
ScriptFromCalleeToken(CalleeToken token)
|
||||
{
|
||||
AutoAssertNoGC nogc;
|
||||
switch (GetCalleeTokenTag(token)) {
|
||||
case CalleeToken_Script:
|
||||
return CalleeTokenToScript(token);
|
||||
case CalleeToken_Function:
|
||||
return CalleeTokenToFunction(token)->script();
|
||||
}
|
||||
JS_NOT_REACHED("invalid callee token tag");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// In between every two frames lies a small header describing both frames. This
|
||||
// header, minimally, contains a returnAddress word and a descriptor word. The
|
||||
|
|
Загрузка…
Ссылка в новой задаче