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:
Xiaobin.Lu%eng.Sun.com 2001-04-27 01:54:22 +00:00
parent 0e0e73f0f7
commit 8f022393f0
4 changed files with 58 additions and 58 deletions

View File

@ -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;
}

View File

@ -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);

View File

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

View File

@ -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;
}