Bug 366617 - Crash when running JavaXPCOM app in IBM JVM. Missing JNICALL in some method declarations. XULRunner only.

This commit is contained in:
pedemont@us.ibm.com
2007-01-11 19:24:27 +00:00
parent 39463a9f63
commit 11419c1b52
4 changed files with 72 additions and 32 deletions

View File

@@ -131,6 +131,45 @@ LoadXULMethods(JNIEnv* env, jobject aXPCOMPath, void** aFunctions)
if (NS_FAILED(rv))
return rv;
#ifdef XP_WIN32
// The JNICALL calling convention defines to "__stdcall" on Win32, which
// mangles the name.
nsDynamicFunctionLoad funcs[] = {
{ "_Java_org_mozilla_xpcom_internal_MozillaImpl_initialize@8",
(NSFuncPtr*) &aFunctions[kFunc_Initialize] },
{ "_Java_org_mozilla_xpcom_internal_GREImpl_initEmbedding@20",
(NSFuncPtr*) &aFunctions[kFunc_InitEmbedding] },
{ "_Java_org_mozilla_xpcom_internal_GREImpl_termEmbedding@8",
(NSFuncPtr*) &aFunctions[kFunc_TermEmbedding] },
{ "_Java_org_mozilla_xpcom_internal_GREImpl_lockProfileDirectory@12",
(NSFuncPtr*) &aFunctions[kFunc_LockProfileDirectory] },
{ "_Java_org_mozilla_xpcom_internal_GREImpl_notifyProfile@8",
(NSFuncPtr*) &aFunctions[kFunc_NotifyProfile] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_initXPCOM@16",
(NSFuncPtr*) &aFunctions[kFunc_InitXPCOM] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_shutdownXPCOM@12",
(NSFuncPtr*) &aFunctions[kFunc_ShutdownXPCOM] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentManager@8",
(NSFuncPtr*) &aFunctions[kFunc_GetComponentManager] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_getComponentRegistrar@8",
(NSFuncPtr*) &aFunctions[kFunc_GetComponentRegistrar] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_getServiceManager@8",
(NSFuncPtr*) &aFunctions[kFunc_GetServiceManager] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMImpl_newLocalFile@16",
(NSFuncPtr*) &aFunctions[kFunc_NewLocalFile] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_callXPCOMMethod@20",
(NSFuncPtr*) &aFunctions[kFunc_CallXPCOMMethod] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_finalizeProxy@12",
(NSFuncPtr*) &aFunctions[kFunc_FinalizeProxy] },
{ "_Java_org_mozilla_xpcom_internal_XPCOMJavaProxy_isSameXPCOMObject@16",
(NSFuncPtr*) &aFunctions[kFunc_IsSameXPCOMObject] },
{ "_Java_org_mozilla_xpcom_ProfileLock_release@16",
(NSFuncPtr*) &aFunctions[kFunc_ReleaseProfileLock] },
{ "Java_org_mozilla_xpcom_internal_MozillaImpl_getNativeHandleFromAWT@12",
(NSFuncPtr*) &aFunctions[kFunc_GetNativeHandleFromAWT] },
{ nsnull, nsnull }
};
#else
nsDynamicFunctionLoad funcs[] = {
{ "Java_org_mozilla_xpcom_internal_MozillaImpl_initialize",
(NSFuncPtr*) &aFunctions[kFunc_Initialize] },
@@ -166,6 +205,7 @@ LoadXULMethods(JNIEnv* env, jobject aXPCOMPath, void** aFunctions)
(NSFuncPtr*) &aFunctions[kFunc_GetNativeHandleFromAWT] },
{ nsnull, nsnull }
};
#endif
rv = XPCOMGlueLoadXULFunctions(funcs);
if (NS_FAILED(rv))