Bug 353693 - nsJavaXPTCStub should use Java class' loader for loading Mozilla classes. r=apeller, a=mconnor. XULRunner only.
git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_8_BRANCH@213078 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -64,6 +64,7 @@ jclass nsISupportsClass = nsnull;
|
||||
jclass xpcomExceptionClass = nsnull;
|
||||
jclass xpcomJavaProxyClass = nsnull;
|
||||
jclass weakReferenceClass = nsnull;
|
||||
jclass javaXPCOMUtilsClass = nsnull;
|
||||
|
||||
jmethodID hashCodeMID = nsnull;
|
||||
jmethodID booleanValueMID = nsnull;
|
||||
@@ -88,6 +89,7 @@ jmethodID getNativeXPCOMInstMID = nsnull;
|
||||
jmethodID weakReferenceConstructorMID = nsnull;
|
||||
jmethodID getReferentMID = nsnull;
|
||||
jmethodID clearReferentMID = nsnull;
|
||||
jmethodID findClassInLoaderMID = nsnull;
|
||||
|
||||
#ifdef DEBUG_JAVAXPCOM
|
||||
jmethodID getNameMID = nsnull;
|
||||
@@ -275,6 +277,16 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("org/mozilla/xpcom/internal/JavaXPCOMMethods")) ||
|
||||
!(javaXPCOMUtilsClass = (jclass) env->NewGlobalRef(clazz)) ||
|
||||
!(findClassInLoaderMID = env->GetStaticMethodID(clazz,
|
||||
"findClassInLoader",
|
||||
"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Class;")))
|
||||
{
|
||||
NS_WARNING("Problem creating org.mozilla.xpcom.internal.JavaXPCOMMethods globals");
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
#ifdef DEBUG_JAVAXPCOM
|
||||
if (!(clazz = env->FindClass("java/lang/Class")) ||
|
||||
!(getNameMID = env->GetMethodID(clazz, "getName","()Ljava/lang/String;")))
|
||||
@@ -795,7 +807,8 @@ JavaXPCOMInstance::~JavaXPCOMInstance()
|
||||
|
||||
nsresult
|
||||
GetNewOrUsedJavaObject(JNIEnv* env, nsISupports* aXPCOMObject,
|
||||
const nsIID& aIID, jobject* aResult)
|
||||
const nsIID& aIID, jobject aObjectLoader,
|
||||
jobject* aResult)
|
||||
{
|
||||
NS_PRECONDITION(aResult != nsnull, "null ptr");
|
||||
if (!aResult)
|
||||
@@ -824,7 +837,7 @@ GetNewOrUsedJavaObject(JNIEnv* env, nsISupports* aXPCOMObject,
|
||||
|
||||
// No Java object is associated with the given XPCOM object, so we
|
||||
// create a Java proxy.
|
||||
return CreateJavaProxy(env, rootObject, aIID, aResult);
|
||||
return CreateJavaProxy(env, rootObject, aIID, aObjectLoader, aResult);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
||||
Reference in New Issue
Block a user