Fix to 62309. Change JS_AddRoot to JS_AddNamedRoot in Liveconnect to aid leak diagnoses.

r=beard
sr=brendan
This commit is contained in:
mccabe%netscape.com 2000-12-09 01:35:46 +00:00
Родитель 763a8e5c72
Коммит 68e18aa4b9
3 изменённых файлов: 9 добавлений и 7 удалений

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

@ -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 */