Bug 880697 - Remove JSD_GetDefaultJSContext and fix callers. r=gabor

This commit is contained in:
Bobby Holley 2013-06-12 14:17:55 -07:00
parent 5e59b212ae
commit 67591874f4
5 changed files with 20 additions and 46 deletions

View File

@ -33,7 +33,6 @@ EXPORTS
_JSD_GetClosestLine
_JSD_GetClosestPC
_JSD_GetCountOfStackFrames
_JSD_GetDefaultJSContext
_JSD_GetMajorVersion
_JSD_GetMinorVersion
_JSD_GetPCForStackFrame

View File

@ -291,7 +291,7 @@ jsd_DropValue(JSDContext* jsdc, JSDValue* jsdval)
jsval
jsd_GetValueWrappedJSVal(JSDContext* jsdc, JSDValue* jsdval)
{
JSContext* cx = JSD_GetDefaultJSContext(jsdc);
AutoSafeJSContext cx;
JS::RootedObject obj(cx);
JS::RootedValue val(cx, jsdval->val);
if (!JSVAL_IS_PRIMITIVE(val)) {

View File

@ -35,6 +35,8 @@
#include "nsContentUtils.h"
#include "nsCxPusher.h"
using mozilla::AutoSafeJSContext;
/*
* defining CAUTIOUS_SCRIPTHOOK makes jsds disable GC while calling out to the
* script hook. This was a hack to avoid some js engine problems that should
@ -655,8 +657,7 @@ jsds_ScriptHookProc (JSDContext* jsdc, JSDScript* jsdscript, JSBool creating,
void* callerdata)
{
#ifdef CAUTIOUS_SCRIPTHOOK
JSContext *cx = JSD_GetDefaultJSContext(jsdc);
JSRuntime *rt = JS_GetRuntime(cx);
JSRuntime *rt = JS_GetRuntime(nsContentUtils::GetSafeJSContext());
#endif
if (creating) {
@ -903,7 +904,8 @@ AssignToJSString(JSDContext *aCx, nsACString *x, JSString *str)
x->SetLength(0);
return NS_OK;
}
JSContext *cx = JSD_GetDefaultJSContext(aCx);
AutoSafeJSContext cx;
JSAutoCompartment ac(cx, JSD_GetDefaultGlobal(aCx)); // Just in case.
size_t length = JS_GetStringEncodingLength(cx, str);
if (length == size_t(-1))
return NS_ERROR_FAILURE;
@ -970,7 +972,8 @@ jsdScript::~jsdScript ()
PCMapEntry *
jsdScript::CreatePPLineMap()
{
JSContext *cx = JSD_GetDefaultJSContext (mCx);
AutoSafeJSContext cx;
JSAutoCompartment ac(cx, JSD_GetDefaultGlobal (mCx)); // Just in case.
JS::RootedObject obj(cx, JS_NewObject(cx, NULL, NULL, NULL));
if (!obj)
return nullptr;
@ -1110,7 +1113,7 @@ NS_IMETHODIMP
jsdScript::GetVersion (int32_t *_rval)
{
ASSERT_VALID_EPHEMERAL;
JSContext *cx = JSD_GetDefaultJSContext (mCx);
AutoSafeJSContext cx;
JS::RootedScript script(cx, JSD_GetJSScript(mCx, mScript));
JSAutoCompartment ac(cx, script);
*_rval = static_cast<int32_t>(JS_GetScriptVersion(cx, script));
@ -1203,11 +1206,7 @@ NS_IMETHODIMP
jsdScript::GetParameterNames(uint32_t* count, PRUnichar*** paramNames)
{
ASSERT_VALID_EPHEMERAL;
JSContext *cx = JSD_GetDefaultJSContext (mCx);
if (!cx) {
NS_WARNING("No default context !?");
return NS_ERROR_FAILURE;
}
AutoSafeJSContext cx;
JS::RootedFunction fun(cx, JSD_GetJSFunction (mCx, mScript));
if (!fun) {
*count = 0;
@ -1267,11 +1266,7 @@ jsdScript::GetFunctionObject(jsdIValue **_rval)
if (!fun)
return NS_ERROR_NOT_AVAILABLE;
JSContext *jsContext = JSD_GetDefaultJSContext (mCx);
if (!jsContext) {
return NS_ERROR_FAILURE;
}
AutoSafeJSContext jsContext;
JS::RootedObject obj(jsContext, JS_GetFunctionObject(fun));
if (!obj)
return NS_ERROR_FAILURE;
@ -1297,11 +1292,8 @@ NS_IMETHODIMP
jsdScript::GetFunctionSource(nsAString & aFunctionSource)
{
ASSERT_VALID_EPHEMERAL;
JSContext *cx = JSD_GetDefaultJSContext (mCx);
if (!cx) {
NS_WARNING("No default context !?");
return NS_ERROR_FAILURE;
}
AutoSafeJSContext cx_;
JSContext *cx = cx_; // Appease the type system with Maybe<>s below.
JS::RootedFunction fun(cx, JSD_GetJSFunction (mCx, mScript));
JSString *jsstr;
@ -2252,11 +2244,7 @@ NS_IMETHODIMP
jsdValue::GetStringValue(nsACString &_rval)
{
ASSERT_VALID_EPHEMERAL;
JSContext *cx = JSD_GetDefaultJSContext (mCx);
if (!cx) {
NS_WARNING("No default context !?");
return NS_ERROR_FAILURE;
}
AutoSafeJSContext cx;
JSString *jstr_val = JSD_GetValueString(mCx, mValue);
if (jstr_val) {
size_t length;
@ -2323,7 +2311,8 @@ NS_IMETHODIMP
jsdValue::GetProperty (const nsACString &name, jsdIProperty **_rval)
{
ASSERT_VALID_EPHEMERAL;
JSContext *cx = JSD_GetDefaultJSContext (mCx);
AutoSafeJSContext cx;
JSAutoCompartment ac(cx, JSD_GetDefaultGlobal (mCx)); // Just in case.
/* not rooting this */
JSString *jstr_name = JS_NewStringCopyZ(cx, PromiseFlatCString(name).get());
@ -2508,8 +2497,9 @@ jsdService::ActivateDebugger (JSRuntime *rt)
if (!mCx)
return NS_ERROR_FAILURE;
mozilla::AutoPushJSContext cx(JSD_GetDefaultJSContext (mCx));
AutoSafeJSContext cx;
JS::RootedObject glob(cx, JSD_GetDefaultGlobal (mCx));
JSAutoCompartment ac(cx, glob);
/* init xpconnect on the debugger's context in case xpconnect tries to
* use it for stuff. */
@ -2575,9 +2565,8 @@ jsdService::Off (void)
if (gGCRunning)
return NS_ERROR_NOT_AVAILABLE;
JSContext *cx = JSD_GetDefaultJSContext(mCx);
while (gDeadScripts)
jsds_NotifyPendingDeadScripts (JS_GetRuntime(cx));
jsds_NotifyPendingDeadScripts (JS_GetRuntime(nsContentUtils::GetSafeJSContext()));
}
DeactivateDebugger();
@ -2765,8 +2754,7 @@ jsdService::DumpHeap(const nsACString &fileName)
if (!file) {
rv = NS_ERROR_FAILURE;
} else {
JSContext *cx = JSD_GetDefaultJSContext (mCx);
if (!JS_DumpHeap(JS_GetRuntime(cx), file, NULL, JSTRACE_OBJECT, NULL, (size_t)-1, NULL))
if (!JS_DumpHeap(JS_GetRuntime(nsContentUtils::GetSafeJSContext()), file, NULL, JSTRACE_OBJECT, NULL, (size_t)-1, NULL))
rv = NS_ERROR_FAILURE;
if (file != stdout)
fclose(file);

View File

@ -60,13 +60,6 @@ JSD_GetMinorVersion(void)
return JSD_MINOR_VERSION;
}
JSD_PUBLIC_API(JSContext*)
JSD_GetDefaultJSContext(JSDContext* jsdc)
{
JSD_ASSERT_VALID_CONTEXT(jsdc);
return jsdc->dumbContext;
}
JSD_PUBLIC_API(JSObject*)
JSD_GetDefaultGlobal(JSDContext* jsdc)
{

View File

@ -151,12 +151,6 @@ JSD_GetMajorVersion(void);
extern JSD_PUBLIC_API(unsigned)
JSD_GetMinorVersion(void);
/*
* Returns a 'dumb' JSContext that can be used for utility purposes as needed
*/
extern JSD_PUBLIC_API(JSContext*)
JSD_GetDefaultJSContext(JSDContext* jsdc);
/*
* Returns the default JSD global associated with a given JSDContext.
*/