Bug 1257919 part 7. Make the name getter on JSStackFrame take an explicit JSContext. r=khuey

This commit is contained in:
Boris Zbarsky 2016-03-22 13:50:31 -04:00
Родитель efa07c06d1
Коммит 54987c5cc1
4 изменённых файлов: 9 добавлений и 9 удалений

Просмотреть файл

@ -1053,7 +1053,7 @@ StackFrameToStackEntry(JSContext* aCx, nsIStackFrame* aStackFrame,
aStackEntry.mColumnNumber = columnNumber;
rv = aStackFrame->GetName(aStackEntry.mFunctionName);
rv = aStackFrame->GetName(aCx, aStackEntry.mFunctionName);
NS_ENSURE_SUCCESS(rv, rv);
nsString cause;

Просмотреть файл

@ -369,17 +369,16 @@ NS_IMETHODIMP JSStackFrame::GetFilename(JSContext* aCx, nsAString& aFilename)
return NS_OK;
}
NS_IMETHODIMP JSStackFrame::GetName(nsAString& aFunction)
NS_IMETHODIMP JSStackFrame::GetName(JSContext* aCx, nsAString& aFunction)
{
if (!mStack) {
aFunction.Truncate();
return NS_OK;
}
ThreadsafeAutoJSContext cx;
JS::Rooted<JSString*> name(cx);
JS::Rooted<JSString*> name(aCx);
bool canCache = false, useCachedValue = false;
GetValueIfNotCached(cx, mStack, JS::GetSavedFrameFunctionDisplayName,
GetValueIfNotCached(aCx, mStack, JS::GetSavedFrameFunctionDisplayName,
mFunnameInitialized, &canCache, &useCachedValue,
&name);
@ -390,8 +389,8 @@ NS_IMETHODIMP JSStackFrame::GetName(nsAString& aFunction)
if (name) {
nsAutoJSString str;
if (!str.init(cx, name)) {
JS_ClearPendingException(cx);
if (!str.init(aCx, name)) {
JS_ClearPendingException(aCx);
aFunction.Truncate();
return NS_OK;
}
@ -644,7 +643,7 @@ NS_IMETHODIMP JSStackFrame::ToString(JSContext* aCx, nsACString& _retval)
}
nsString funname;
rv = GetName(funname);
rv = GetName(aCx, funname);
NS_ENSURE_SUCCESS(rv, rv);
if (funname.IsEmpty()) {

Просмотреть файл

@ -59,7 +59,7 @@ SandboxLogJSStack(void)
lineNumber = 0;
Unused << frame->GetLineNumber(&lineNumber);
funName.SetIsVoid(true);
Unused << frame->GetName(funName);
Unused << frame->GetName(cx, funName);
if (!funName.IsVoid() || !fileName.IsVoid()) {
SANDBOX_LOG_ERROR("JS frame %d: %s %s line %d", i,

Просмотреть файл

@ -18,6 +18,7 @@ interface nsIStackFrame : nsISupports
readonly attribute AUTF8String languageName;
[implicit_jscontext]
readonly attribute AString filename;
[implicit_jscontext]
readonly attribute AString name;
// Valid line numbers begin at '1'. '0' indicates unknown.
readonly attribute int32_t lineNumber;