bug 5403 r=edburns sr=beard
remove the Get_JVMMgr and use do_GetService instead git-svn-id: svn://10.0.0.236/trunk@93213 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
0e0e73f0f7
commit
8f022393f0
@ -41,31 +41,6 @@ PR_BEGIN_EXTERN_C
|
||||
extern nsPluginManager* thePluginManager;
|
||||
#endif
|
||||
|
||||
PR_IMPLEMENT(nsJVMManager*)
|
||||
JVM_GetJVMMgr(void)
|
||||
{
|
||||
#ifdef PRE_SERVICE_MANAGER
|
||||
nsresult result = NS_OK;
|
||||
if (thePluginManager == NULL) {
|
||||
result = nsPluginManager::Create(NULL, kIPluginManagerIID, (void**)&thePluginManager);
|
||||
if (result != NS_OK)
|
||||
return NULL;
|
||||
}
|
||||
nsJVMManager* mgr = NULL;
|
||||
result = thePluginManager->QueryInterface(kIJVMManagerIID, (void**)&mgr);
|
||||
if (result != NS_OK)
|
||||
return NULL;
|
||||
return mgr;
|
||||
#else
|
||||
nsJVMManager* mgr = NULL;
|
||||
nsresult err = nsServiceManager::GetService(kJVMManagerCID, kIJVMManagerIID,
|
||||
(nsISupports**)&mgr);
|
||||
if (err != NS_OK)
|
||||
return NULL;
|
||||
return mgr;
|
||||
#endif
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ReleaseJVMMgr(nsJVMManager* mgr)
|
||||
{
|
||||
@ -77,7 +52,10 @@ static nsIJVMPlugin*
|
||||
GetRunningJVM(void)
|
||||
{
|
||||
nsIJVMPlugin* jvm = NULL;
|
||||
nsJVMManager* jvmMgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return jvm;
|
||||
nsJVMManager* jvmMgr = (nsJVMManager *)managerService.get();
|
||||
if (jvmMgr) {
|
||||
nsJVMStatus status = jvmMgr->GetJVMStatus();
|
||||
if (status == nsJVMStatus_Enabled)
|
||||
@ -85,7 +63,6 @@ GetRunningJVM(void)
|
||||
if (status == nsJVMStatus_Running) {
|
||||
jvm = jvmMgr->GetJVMPlugin();
|
||||
}
|
||||
// jvmMgr->Release();
|
||||
}
|
||||
return jvm;
|
||||
}
|
||||
@ -101,10 +78,12 @@ PR_IMPLEMENT(nsJVMStatus)
|
||||
JVM_ShutdownJVM(void)
|
||||
{
|
||||
nsJVMStatus status = nsJVMStatus_Failed;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return status;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
status = mgr->ShutdownJVM();
|
||||
// mgr->Release();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@ -113,11 +92,13 @@ JVM_ShutdownJVM(void)
|
||||
PR_IMPLEMENT(nsJVMStatus)
|
||||
JVM_GetJVMStatus(void)
|
||||
{
|
||||
nsresult rv;
|
||||
nsJVMStatus status = nsJVMStatus_Disabled;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return status;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
status = mgr->GetJVMStatus();
|
||||
// mgr->Release();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
@ -126,10 +107,11 @@ PR_IMPLEMENT(PRBool)
|
||||
JVM_AddToClassPath(const char* dirPath)
|
||||
{
|
||||
nsresult err = NS_ERROR_FAILURE;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &err);
|
||||
if (NS_FAILED(err)) return PR_FALSE;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
err = mgr->AddToClassPath(dirPath);
|
||||
// mgr->Release();
|
||||
}
|
||||
return err == NS_OK;
|
||||
}
|
||||
@ -326,10 +308,12 @@ PR_IMPLEMENT(PRBool)
|
||||
JVM_MaybeStartupLiveConnect()
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->MaybeStartupLiveConnect();
|
||||
// mgr->Release();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -339,10 +323,12 @@ PR_IMPLEMENT(PRBool)
|
||||
JVM_MaybeShutdownLiveConnect(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->MaybeShutdownLiveConnect();
|
||||
// mgr->Release();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -351,10 +337,12 @@ PR_IMPLEMENT(PRBool)
|
||||
JVM_IsLiveConnectEnabled(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsJVMManager* mgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->IsLiveConnectEnabled();
|
||||
// mgr->Release();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -46,11 +46,6 @@ typedef enum nsJVMStatus {
|
||||
|
||||
PR_BEGIN_EXTERN_C
|
||||
|
||||
/* Returns the JVM manager. You must do a Release on the pointer returned when
|
||||
you're done with it. */
|
||||
PR_EXTERN(struct nsJVMManager*)
|
||||
JVM_GetJVMMgr(void);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_ReleaseJVMMgr(struct nsJVMManager* mgr);
|
||||
|
||||
|
||||
@ -32,9 +32,12 @@
|
||||
#include "nsCRT.h"
|
||||
#include "nsIScriptGlobalObject.h"
|
||||
#include "nsIScriptObjectOwner.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsNetUtil.h"
|
||||
|
||||
static NS_DEFINE_CID(kJVMManagerCID, NS_JVMMANAGER_CID);
|
||||
|
||||
extern "C" int XP_PROGRESS_STARTING_JAVA;
|
||||
extern "C" int XP_PROGRESS_STARTING_JAVA_DONE;
|
||||
extern "C" int XP_JAVA_NO_CLASSES;
|
||||
@ -175,10 +178,12 @@ map_js_context_to_jsj_thread_impl(JSContext *cx, char **errp)
|
||||
}
|
||||
*/
|
||||
JSJavaVM* js_jvm = NULL;
|
||||
nsJVMManager* pJVMMgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return NULL;
|
||||
nsJVMManager* pJVMMgr = (nsJVMManager *)managerService.get();
|
||||
if (pJVMMgr != NULL) {
|
||||
js_jvm = pJVMMgr->GetJSJavaVM();
|
||||
pJVMMgr->Release();
|
||||
if (js_jvm == NULL) {
|
||||
*errp = strdup("Failed to attach to a Java VM.");
|
||||
return NULL;
|
||||
@ -194,6 +199,7 @@ map_js_context_to_jsj_thread_impl(JSContext *cx, char **errp)
|
||||
|
||||
/*
|
||||
** This callback is called in JSObject.getWindow implementation to get
|
||||
|
||||
** a java wrapper JSObject class for a applet only once.
|
||||
** Note that once a mapping between applet -> javascript JSObject -> Java wrapper JSObject
|
||||
** is made, all subsequent method calls via JSObject use the internal field
|
||||
@ -265,7 +271,9 @@ ConvertNSIPrincipalArrayToObject(JNIEnv *pJNIEnv, JSContext *pJSContext, void *
|
||||
nsIPrincipal **ppNSIPrincipalArray = NS_REINTERPRET_CAST(nsIPrincipal**, ppNSIPrincipalArrayIN);
|
||||
PRInt32 length = numPrincipals;
|
||||
nsresult err = NS_OK;
|
||||
nsJVMManager* pJVMMgr = JVM_GetJVMMgr();
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &err);
|
||||
if (NS_FAILED(err)) return NULL;
|
||||
nsJVMManager* pJVMMgr = (nsJVMManager *)managerService.get();
|
||||
void *pNSPrincipalArray = NULL;
|
||||
if (pJVMMgr != NULL) {
|
||||
if (ppNSIPrincipalArray != NULL) {
|
||||
@ -302,7 +310,6 @@ ConvertNSIPrincipalArrayToObject(JNIEnv *pJNIEnv, JSContext *pJSContext, void *
|
||||
pNSIPluginManager->Release();
|
||||
}
|
||||
}
|
||||
pJVMMgr->Release();
|
||||
}
|
||||
if ( (pNSPrincipalArray != NULL)
|
||||
&&(length != 0)
|
||||
@ -357,14 +364,14 @@ get_java_wrapper_impl(JNIEnv *pJNIEnv, jint a_jsobject)
|
||||
{
|
||||
nsresult err = NS_OK;
|
||||
jobject pJSObjectWrapper = NULL;
|
||||
nsJVMManager* pJVMMgr = JVM_GetJVMMgr();
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &err);
|
||||
if (NS_FAILED(err)) return NULL;
|
||||
nsJVMManager* pJVMMgr = (nsJVMManager *)managerService.get();
|
||||
if (pJVMMgr != NULL) {
|
||||
nsIJVMPlugin* pJVMPI = pJVMMgr->GetJVMPlugin();
|
||||
if (pJVMPI != NULL) {
|
||||
err = pJVMPI->GetJavaWrapper(pJNIEnv, a_jsobject, &pJSObjectWrapper);
|
||||
//pJVMPI->Release();
|
||||
}
|
||||
pJVMMgr->Release();
|
||||
}
|
||||
if ( err != NS_OK )
|
||||
{
|
||||
@ -377,15 +384,15 @@ static jint PR_CALLBACK
|
||||
unwrap_java_wrapper_impl(JNIEnv *pJNIEnv, jobject java_wrapper)
|
||||
{
|
||||
jint obj = 0;
|
||||
|
||||
nsresult err = NS_OK;
|
||||
nsJVMManager* pJVMMgr = JVM_GetJVMMgr();
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &err);
|
||||
if (NS_FAILED(err)) return 0;
|
||||
nsJVMManager* pJVMMgr = (nsJVMManager *)managerService.get();
|
||||
if (pJVMMgr != NULL) {
|
||||
nsIJVMPlugin* pJVMPI = pJVMMgr->GetJVMPlugin();
|
||||
if (pJVMPI != NULL) {
|
||||
err = pJVMPI->UnwrapJavaWrapper(pJNIEnv, java_wrapper, &obj);
|
||||
}
|
||||
pJVMMgr->Release();
|
||||
}
|
||||
if ( err != NS_OK )
|
||||
{
|
||||
@ -519,7 +526,10 @@ static PRBool PR_CALLBACK
|
||||
create_java_vm_impl(SystemJavaVM* *jvm, JNIEnv* *initialEnv, void* initargs)
|
||||
{
|
||||
// const char* classpath = (const char*)initargs;
|
||||
*jvm = NS_REINTERPRET_CAST(SystemJavaVM*, JVM_GetJVMMgr()); // unused in the browser
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return PR_FALSE;
|
||||
*jvm = NS_REINTERPRET_CAST(SystemJavaVM*, managerService.get()); // unused in the browse
|
||||
*initialEnv = JVM_GetJNIEnv();
|
||||
return (*jvm != NULL && *initialEnv != NULL);
|
||||
}
|
||||
@ -549,7 +559,11 @@ static SystemJavaVM* PR_CALLBACK
|
||||
get_java_vm_impl(JNIEnv* env)
|
||||
{
|
||||
// only one SystemJavaVM for the whole browser, so it doesn't depend on env
|
||||
return NS_REINTERPRET_CAST(SystemJavaVM*, JVM_GetJVMMgr());
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return NULL;
|
||||
SystemJavaVM* jvm = NS_REINTERPRET_CAST(SystemJavaVM*, managerService.get());
|
||||
return jvm;
|
||||
}
|
||||
|
||||
PR_END_EXTERN_C
|
||||
|
||||
@ -67,6 +67,7 @@ extern "C" int XP_JAVA_STARTUP_FAILED;
|
||||
extern "C" int XP_JAVA_DEBUGGER_FAILED;
|
||||
|
||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||
static NS_DEFINE_CID(kJVMManagerCID, NS_JVMMANAGER_CID);
|
||||
|
||||
static NS_DEFINE_CID(kPluginManagerCID, NS_PLUGINMANAGER_CID);
|
||||
static NS_DEFINE_IID(kPluginHostIID, NS_IPLUGINHOST_IID);
|
||||
@ -105,7 +106,10 @@ static nsIJVMPlugin*
|
||||
GetRunningJVM()
|
||||
{
|
||||
nsIJVMPlugin* jvm = NULL;
|
||||
nsJVMManager* jvmMgr = JVM_GetJVMMgr();
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return jvm;
|
||||
nsJVMManager* jvmMgr = (nsJVMManager *)managerService.get();
|
||||
if (jvmMgr) {
|
||||
nsJVMStatus status = jvmMgr->GetJVMStatus();
|
||||
if (status == nsJVMStatus_Enabled)
|
||||
@ -113,7 +117,6 @@ GetRunningJVM()
|
||||
if (status == nsJVMStatus_Running) {
|
||||
jvm = jvmMgr->GetJVMPlugin();
|
||||
}
|
||||
jvmMgr->Release();
|
||||
}
|
||||
return jvm;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user