Merged Patrick's OJI-specific changes from the trunk. They should not affect

standalone LiveConnect.


git-svn-id: svn://10.0.0.236/branches/SpiderMonkey140_BRANCH@36674 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
fur%netscape.com
1999-06-24 05:19:04 +00:00
parent a661ab5259
commit 046ce3b5dc
6 changed files with 65 additions and 44 deletions

View File

@@ -641,7 +641,7 @@ done:
JSJavaThreadState *
jsj_enter_js(JNIEnv *jEnv, jobject java_wrapper_obj,
jsj_enter_js(JNIEnv *jEnv, void* applet_obj, jobject java_wrapper_obj,
JSContext **cxp, JSObject **js_objp, JSErrorReporter *old_error_reporterp,
void **pNSIPrincipaArray, int numPrincipals, void *pNSISecurityContext)
{
@@ -683,6 +683,10 @@ jsj_enter_js(JNIEnv *jEnv, jobject java_wrapper_obj,
if (!jsj_env)
goto error;
/* If a JSContext was passed by caller, use it. */
if (jsj_env->cx == NULL)
jsj_env->cx = *cxp;
/* Get the JSContext that we're supposed to use for this Java thread */
cx = jsj_env->cx;
if (!cx) {
@@ -690,7 +694,14 @@ jsj_enter_js(JNIEnv *jEnv, jobject java_wrapper_obj,
Java and back into JS. Invoke a callback to obtain/create a
JSContext for us to use. */
if (JSJ_callbacks->map_jsj_thread_to_js_context) {
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env, jEnv, &err_msg);
#ifdef OJI
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env,
applet_obj,
jEnv, &err_msg);
#else
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env,
jEnv, &err_msg);
#endif
if (!cx)
goto error;
} else {
@@ -812,7 +823,7 @@ Java_netscape_javascript_JSObject_getMember(JNIEnv *jEnv,
jobject java_wrapper_obj,
jstring property_name_jstr)
{
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
int dummy_cost;
@@ -824,7 +835,7 @@ Java_netscape_javascript_JSObject_getMember(JNIEnv *jEnv,
jboolean is_copy;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;
@@ -870,7 +881,7 @@ Java_netscape_javascript_JSObject_getSlot(JNIEnv *jEnv,
jobject java_wrapper_obj,
jint slot)
{
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
int dummy_cost;
@@ -879,7 +890,7 @@ Java_netscape_javascript_JSObject_getSlot(JNIEnv *jEnv,
jobject member;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;
@@ -908,7 +919,7 @@ Java_netscape_javascript_JSObject_setMember(JNIEnv *jEnv,
jstring property_name_jstr,
jobject java_obj)
{
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
const jchar *property_name_ucs2;
@@ -917,7 +928,7 @@ Java_netscape_javascript_JSObject_setMember(JNIEnv *jEnv,
jboolean is_copy;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return;
@@ -958,13 +969,13 @@ Java_netscape_javascript_JSObject_setSlot(JNIEnv *jEnv,
jint slot,
jobject java_obj)
{
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
JSErrorReporter saved_reporter;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return;
@@ -986,7 +997,7 @@ Java_netscape_javascript_JSObject_removeMember(JNIEnv *jEnv,
jobject java_wrapper_obj,
jstring property_name_jstr)
{
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
const jchar *property_name_ucs2;
@@ -995,7 +1006,7 @@ Java_netscape_javascript_JSObject_removeMember(JNIEnv *jEnv,
jboolean is_copy;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return;
@@ -1032,7 +1043,7 @@ Java_netscape_javascript_JSObject_call(JNIEnv *jEnv, jobject java_wrapper_obj,
{
int i, argc, arg_num;
jsval *argv;
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val, function_val;
int dummy_cost;
@@ -1044,7 +1055,7 @@ Java_netscape_javascript_JSObject_call(JNIEnv *jEnv, jobject java_wrapper_obj,
jobject result;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;
@@ -1120,7 +1131,7 @@ Java_netscape_javascript_JSObject_eval(JNIEnv *jEnv,
{
const char *codebase;
JSPrincipals *principals;
JSContext *cx;
JSContext *cx = NULL;
JSBool eval_succeeded;
JSObject *js_obj;
jsval js_val;
@@ -1133,7 +1144,7 @@ Java_netscape_javascript_JSObject_eval(JNIEnv *jEnv,
jobject result;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;
@@ -1189,13 +1200,13 @@ Java_netscape_javascript_JSObject_toString(JNIEnv *jEnv,
jobject java_wrapper_obj)
{
jstring result;
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
JSString *jsstr;
JSErrorReporter saved_reporter;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, NULL, java_wrapper_obj, &cx, &js_obj, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;
@@ -1223,7 +1234,7 @@ Java_netscape_javascript_JSObject_getWindow(JNIEnv *jEnv,
jobject java_applet_obj)
{
char *err_msg;
JSContext *cx;
JSContext *cx = NULL;
JSObject *js_obj;
jsval js_val;
int dummy_cost;
@@ -1232,7 +1243,7 @@ Java_netscape_javascript_JSObject_getWindow(JNIEnv *jEnv,
jobject java_obj;
JSJavaThreadState *jsj_env;
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_reporter, NULL, 0, NULL);
jsj_env = jsj_enter_js(jEnv, java_applet_obj, NULL, &cx, NULL, &saved_reporter, NULL, 0, NULL);
if (!jsj_env)
return NULL;

View File

@@ -411,7 +411,14 @@ jsj_DiscardJavaClassReflections(JNIEnv *jEnv)
Java and back into JS. Invoke a callback to obtain/create a
JSContext for us to use. */
if (JSJ_callbacks->map_jsj_thread_to_js_context) {
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env, jEnv, &err_msg);
#ifdef OJI
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env,
NULL /* FIXME: What should this argument be ? */
jEnv, &err_msg);
#else
cx = JSJ_callbacks->map_jsj_thread_to_js_context(jsj_env,
jEnv, &err_msg);
#endif
JS_ASSERT(cx);
if (!cx)
return;

View File

@@ -359,7 +359,7 @@ jsj_ConvertJavaObjectToJSBoolean(JSContext *cx, JNIEnv *jEnv,
JavaClassDescriptor *class_descriptor,
jobject java_obj, jsval *vp);
extern JSJavaThreadState *
jsj_enter_js(JNIEnv *jEnv, jobject java_wrapper_obj,
jsj_enter_js(JNIEnv *jEnv, void* java_applet_obj, jobject java_wrapper_obj,
JSContext **cxp, JSObject **js_objp, JSErrorReporter *old_error_reporterp,
void **pNSIPrincipaArray, int numPrincipals, void *pNSISecurityContext);

View File

@@ -78,6 +78,9 @@ typedef struct JSJCallbacks {
callback can call JSJ_SetJSContextForJavaThread() to avoid any further
callbacks of this type for this Java thread. */
JSContext * (*map_jsj_thread_to_js_context)(JSJavaThreadState *jsj_env,
#ifdef OJI
void *java_applet_obj,
#endif
JNIEnv *jEnv,
char **errp);

View File

@@ -54,7 +54,7 @@ DEFFILE = $(DLLNAME).def
LLIBS=$(LIBNSPR) $(DIST)\lib\js$(MOZ_BITS)$(VERSION_NUMBER).lib \
!ifdef MOZ_OJI
$(DIST)\lib\xpcom32.lib \
$(DIST)\lib\xpcom.lib \
!endif
$(NULL)
@@ -96,7 +96,7 @@ OBJS= \
#// install headers
#//
#//------------------------------------------------------------------------
INSTALL_DIR=$(PUBLIC)\js
INSTALL_DIR=$(XPDIST)\include
INSTALL_FILE_LIST= \
jsjava.h \
!ifdef MOZ_OJI

View File

@@ -99,10 +99,10 @@ NS_METHOD
nsCLiveconnect::GetMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize length, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext, jobject *pjobj)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jobject member = NULL;
jsval js_val;
int dummy_cost = 0;
@@ -113,7 +113,7 @@ nsCLiveconnect::GetMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize l
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -153,10 +153,10 @@ NS_METHOD
nsCLiveconnect::GetSlot(JNIEnv *jEnv, jsobject obj, jint slot, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext, jobject *pjobj)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jobject member = NULL;
jsval js_val;
int dummy_cost = 0;
@@ -167,7 +167,7 @@ nsCLiveconnect::GetSlot(JNIEnv *jEnv, jsobject obj, jint slot, void* principalsA
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -201,10 +201,10 @@ NS_METHOD
nsCLiveconnect::SetMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize length, jobject java_obj, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jsval js_val;
JSErrorReporter saved_state = NULL;
@@ -213,7 +213,7 @@ nsCLiveconnect::SetMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize l
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -247,10 +247,10 @@ NS_METHOD
nsCLiveconnect::SetSlot(JNIEnv *jEnv, jsobject obj, jint slot, jobject java_obj, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jsval js_val;
JSErrorReporter saved_state = NULL;
@@ -258,7 +258,7 @@ nsCLiveconnect::SetSlot(JNIEnv *jEnv, jsobject obj, jint slot, jobject java_obj,
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -283,10 +283,10 @@ NS_METHOD
nsCLiveconnect::RemoveMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize length, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jsval js_val;
JSErrorReporter saved_state = NULL;
@@ -294,7 +294,7 @@ nsCLiveconnect::RemoveMember(JNIEnv *jEnv, jsobject obj, const jchar *name, jsiz
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -327,10 +327,10 @@ nsCLiveconnect::Call(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize length
int argc = 0;
int arg_num = 0;
jsval *argv = 0;
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jsval js_val;
jsval function_val = 0;
int dummy_cost = 0;
@@ -342,7 +342,7 @@ nsCLiveconnect::Call(JNIEnv *jEnv, jsobject obj, const jchar *name, jsize length
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -402,10 +402,10 @@ NS_METHOD
nsCLiveconnect::Eval(JNIEnv *jEnv, jsobject obj, const jchar *script, jsize length, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext, jobject *pjobj)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
jsval js_val;
int dummy_cost = 0;
JSBool dummy_bool = PR_FALSE;
@@ -419,7 +419,7 @@ nsCLiveconnect::Eval(JNIEnv *jEnv, jsobject obj, const jchar *script, jsize leng
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
@@ -466,14 +466,14 @@ done:
* in which a applet/bean resides.
*/
NS_METHOD
nsCLiveconnect::GetWindow(JNIEnv *jEnv, void *pJavaObject, void* principalsArray[],
nsCLiveconnect::GetWindow(JNIEnv *jEnv, void *java_applet_obj, void* principalsArray[],
int numPrincipals, void *pNSISecurityContext, jsobject *pobj)
{
char *err_msg = NULL;
JSContext *cx = NULL;
JSObject *js_obj = NULL;
JSErrorReporter saved_state = NULL;
jobject java_obj = NULL;
jobject java_obj = NULL;
JSJavaThreadState *jsj_env = NULL;
int dummy_cost = 0;
JSBool dummy_bool = PR_FALSE;
@@ -482,13 +482,13 @@ nsCLiveconnect::GetWindow(JNIEnv *jEnv, void *pJavaObject, void* principalsArra
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
jsj_env = jsj_enter_js(jEnv, java_applet_obj, NULL, &cx, NULL, &saved_state, principalsArray, numPrincipals, pNSISecurityContext);
if (!jsj_env)
return NS_ERROR_FAILURE;
err_msg = NULL;
java_obj = NULL;
js_obj = JSJ_callbacks->map_java_object_to_js_object(jEnv, pJavaObject, &err_msg);
js_obj = JSJ_callbacks->map_java_object_to_js_object(jEnv, java_applet_obj, &err_msg);
if (!js_obj) {
if (err_msg) {
JS_ReportError(cx, err_msg);
@@ -546,10 +546,10 @@ nsCLiveconnect::FinalizeJSObject(JNIEnv *jEnv, jsobject obj)
NS_METHOD
nsCLiveconnect::ToString(JNIEnv *jEnv, jsobject obj, jstring *pjstring)
{
JSContext *cx = NULL;
JSJavaThreadState *jsj_env = NULL;
JSObjectHandle *handle = (JSObjectHandle*)obj;
JSObject *js_obj = handle->js_obj;
JSContext *cx = handle->cx;
JSErrorReporter saved_state = NULL;
jstring result = NULL;
JSString *jsstr = NULL;
@@ -559,7 +559,7 @@ nsCLiveconnect::ToString(JNIEnv *jEnv, jsobject obj, jstring *pjstring)
{
return NS_ERROR_FAILURE;
}
jsj_env = jsj_enter_js(jEnv, NULL, &cx, NULL, &saved_state, NULL, 0, NULL );
jsj_env = jsj_enter_js(jEnv, NULL, NULL, &cx, NULL, &saved_state, NULL, 0, NULL );
if (!jsj_env)
return NS_ERROR_FAILURE;