зеркало из https://github.com/mozilla/gecko-dev.git
Fix to 62309. Change JS_AddRoot to JS_AddNamedRoot in Liveconnect to aid leak diagnoses.
r=beard sr=brendan
This commit is contained in:
Родитель
763a8e5c72
Коммит
68e18aa4b9
|
@ -182,7 +182,7 @@ jsj_WrapJSObject(JSContext *cx, JNIEnv *jEnv, JSObject *js_obj)
|
|||
if (he) {
|
||||
/* Tell the JavaScript GC about this object since the only reference
|
||||
to it may be in Java-land. */
|
||||
JS_AddRoot(cx, (void*)&he->key);
|
||||
JS_AddNamedRoot(cx, (void*)&he->key, "&he->key");
|
||||
} else {
|
||||
JS_ReportOutOfMemory(cx);
|
||||
/* No need to delete java_wrapper_obj because Java GC will reclaim it */
|
||||
|
@ -282,7 +282,7 @@ jsj_WrapJSObject(JSContext *cx, JNIEnv *jEnv, JSObject *js_obj)
|
|||
goto done;
|
||||
}
|
||||
|
||||
JS_AddRoot(cx, &handle->js_obj);
|
||||
JS_AddNamedRoot(cx, &handle->js_obj, "&handle->js_obj");
|
||||
|
||||
done:
|
||||
|
||||
|
@ -1136,7 +1136,7 @@ Java_netscape_javascript_JSObject_call(JNIEnv *jEnv, jobject java_wrapper_obj,
|
|||
|
||||
if (!jsj_ConvertJavaObjectToJSValue(cx, jEnv, arg, &argv[arg_num]))
|
||||
goto cleanup_argv;
|
||||
JS_AddRoot(cx, &argv[arg_num]);
|
||||
JS_AddNamedRoot(cx, &argv[arg_num], "&argv[arg_num]");
|
||||
}
|
||||
|
||||
if (!JS_GetUCProperty(cx, js_obj, function_name_ucs2, function_name_len,
|
||||
|
|
|
@ -83,10 +83,10 @@ jsj_CreateJavaMember(JSContext *cx, jsval method_val, jsval field_val)
|
|||
|
||||
JS_SetPrivate(cx, JavaMember_obj, (void *)member_val);
|
||||
member_val->method_val = method_val;
|
||||
JS_AddRoot(cx, &member_val->method_val);
|
||||
JS_AddNamedRoot(cx, &member_val->method_val, "&member_val->method_val");
|
||||
member_val->field_val = field_val;
|
||||
if (JSVAL_IS_GCTHING(field_val))
|
||||
JS_AddRoot(cx, &member_val->field_val);
|
||||
JS_AddNamedRoot(cx, &member_val->field_val, "&member_val->field_val");
|
||||
|
||||
return JavaMember_obj;
|
||||
}
|
||||
|
|
|
@ -447,7 +447,8 @@ add_java_method_to_class_descriptor(JSContext *cx, JNIEnv *jEnv,
|
|||
fun = JS_NewFunction(cx, jsj_JavaInstanceMethodWrapper, 0,
|
||||
JSFUN_BOUND_METHOD, NULL, member_descriptor->name);
|
||||
member_descriptor->invoke_func_obj = JS_GetFunctionObject(fun);
|
||||
JS_AddRoot(cx, &member_descriptor->invoke_func_obj);
|
||||
JS_AddNamedRoot(cx, &member_descriptor->invoke_func_obj,
|
||||
"&member_descriptor->invoke_func_obj");
|
||||
}
|
||||
if (!member_descriptor)
|
||||
return JS_FALSE;
|
||||
|
@ -750,7 +751,8 @@ jsj_ResolveExplicitMethod(JSContext *cx, JNIEnv *jEnv,
|
|||
fun = JS_NewFunction(cx, jsj_JavaInstanceMethodWrapper, 0,
|
||||
JSFUN_BOUND_METHOD, NULL, method_name);
|
||||
member_descriptor->invoke_func_obj = JS_GetFunctionObject(fun);
|
||||
JS_AddRoot(cx, &member_descriptor->invoke_func_obj);
|
||||
JS_AddNamedRoot(cx, &member_descriptor->invoke_func_obj,
|
||||
"&member_descriptor->invoke_func_obj");
|
||||
|
||||
/* THREADSAFETY */
|
||||
/* Add the new aliased member to the list of all members for the class */
|
||||
|
|
Загрузка…
Ссылка в новой задаче