Bug 270889 - Various minor code and comment fixes.
git-svn-id: svn://10.0.0.236/trunk@166985 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -71,7 +71,8 @@ public final class XPCOM {
|
||||
* </ul>
|
||||
*/
|
||||
public static native
|
||||
nsIServiceManager initXPCOM(File aMozBinDirectory, AppFileLocProvider aAppFileLocProvider);
|
||||
nsIServiceManager initXPCOM(File aMozBinDirectory,
|
||||
AppFileLocProvider aAppFileLocProvider);
|
||||
|
||||
/**
|
||||
* Shutdown XPCOM. You must call this method after you are finished
|
||||
|
||||
@@ -89,7 +89,7 @@ GECKO_NATIVE(initEmbedding) (JNIEnv* env, jclass, jobject aMozBinDirectory,
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
GECKO_NATIVE(termEmbedding) (JNIEnv *env, jclass)
|
||||
{
|
||||
nsresult rv = NS_TermEmbedding();
|
||||
nsresult rv = NS_TermEmbedding();
|
||||
if (NS_FAILED(rv))
|
||||
ThrowXPCOMException(env, rv, "NS_TermEmbedding failed");
|
||||
|
||||
@@ -166,7 +166,7 @@ XPCOM_NATIVE(shutdownXPCOM) (JNIEnv *env, jclass, jobject aServMgr)
|
||||
servMgr = do_QueryInterface(((JavaXPCOMInstance*) xpcomObj)->GetInstance());
|
||||
}
|
||||
|
||||
nsresult rv = NS_ShutdownXPCOM(servMgr);
|
||||
nsresult rv = NS_ShutdownXPCOM(servMgr);
|
||||
if (NS_FAILED(rv))
|
||||
ThrowXPCOMException(env, rv, "NS_ShutdownXPCOM failed");
|
||||
|
||||
|
||||
@@ -412,7 +412,7 @@ SetupParams(JNIEnv *env, const jobject aParam, const nsXPTParamInfo &aParamInfo,
|
||||
}
|
||||
break;
|
||||
|
||||
// XXX How should this be handled?
|
||||
// handle "void *" as an "int" in Java
|
||||
case nsXPTType::T_VOID:
|
||||
{
|
||||
if (env->IsInstanceOf(aParam, intClass))
|
||||
@@ -469,7 +469,6 @@ FinalizeParams(JNIEnv *env, const jobject aParam,
|
||||
nsresult rv = NS_OK;
|
||||
const nsXPTType &type = aParamInfo.GetType();
|
||||
|
||||
// XXX Not sure if this is necessary
|
||||
// Only write the array elements back if the parameter is an output param
|
||||
jint mode = 0;
|
||||
if (!aParamInfo.IsOut() && !aParamInfo.IsRetval())
|
||||
@@ -609,9 +608,8 @@ FinalizeParams(JNIEnv *env, const jobject aParam,
|
||||
env->SetObjectArrayElement((jobjectArray) aParam, 0, str);
|
||||
}
|
||||
|
||||
// XXX Cannot delete this until we've handled all of the params. See
|
||||
// comment in CallXPCOMMethod
|
||||
// delete iid;
|
||||
// Ordinarily, we would delete 'iid' here. But we cannot do that until
|
||||
// we've handled all of the params. See comment in CallXPCOMMethod
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -888,21 +886,26 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
|
||||
return;
|
||||
}
|
||||
|
||||
NS_ASSERTION(!IsXPTCStub(xpcomObj), "Expected JavaXPCOMInstance, but got nsJavaXPTCStub");
|
||||
NS_ASSERTION(!IsXPTCStub(xpcomObj),
|
||||
"Expected JavaXPCOMInstance, but got nsJavaXPTCStub");
|
||||
JavaXPCOMInstance* inst = (JavaXPCOMInstance*) xpcomObj;
|
||||
|
||||
// Get method info
|
||||
const nsXPTMethodInfo* methodInfo;
|
||||
nsIInterfaceInfo* iinfo = inst->InterfaceInfo();
|
||||
nsresult rv = iinfo->GetMethodInfo(aMethodIndex, &methodInfo);
|
||||
NS_ASSERTION(NS_SUCCEEDED(rv), "GetMethodInfo failed");
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
ThrowXPCOMException(env, rv, "GetMethodInfo failed");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
const char* ifaceName;
|
||||
iinfo->GetNameShared(&ifaceName);
|
||||
LOG(("=> Calling %s::%s()\n", ifaceName, methodInfo->GetName()));
|
||||
#endif
|
||||
|
||||
// Convert the Java params
|
||||
PRUint8 paramCount = methodInfo->GetParamCount();
|
||||
nsXPTCVariant* params = nsnull;
|
||||
if (paramCount)
|
||||
@@ -955,10 +958,12 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
|
||||
}
|
||||
}
|
||||
|
||||
// Call the XPCOM method
|
||||
nsresult invokeResult;
|
||||
invokeResult = XPTC_InvokeByIndex(inst->GetInstance(), aMethodIndex,
|
||||
paramCount, params);
|
||||
|
||||
// Clean up params
|
||||
for (PRUint8 i = 0; i < paramCount && NS_SUCCEEDED(rv); i++)
|
||||
{
|
||||
const nsXPTParamInfo ¶mInfo = methodInfo->GetParam(i);
|
||||
@@ -977,10 +982,10 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
|
||||
return;
|
||||
}
|
||||
|
||||
// XXX Normally, we would delete any created nsID object in the above loop.
|
||||
// However, GetIIDForMethodParam may need some of the nsID params when it's
|
||||
// looking for the IID of an INTERFACE_IS. Therefore, we can't delete it
|
||||
// until we've gone through the 'Finalize' loop once and created the result.
|
||||
// Normally, we would delete any created nsID object in the above loop.
|
||||
// However, GetIIDForMethodParam may need some of the nsID params when it's
|
||||
// looking for the IID of an INTERFACE_IS. Therefore, we can't delete it
|
||||
// until we've gone through the 'Finalize' loop once and created the result.
|
||||
for (PRUint8 j = 0; j < paramCount && NS_SUCCEEDED(rv); j++)
|
||||
{
|
||||
const nsXPTParamInfo ¶mInfo = methodInfo->GetParam(j);
|
||||
@@ -1007,7 +1012,6 @@ CallXPCOMMethod(JNIEnv *env, jclass that, jobject aJavaObject,
|
||||
return;
|
||||
}
|
||||
|
||||
// XXX Use org.mozilla.classfile.ClassFileWriter for stubs?
|
||||
jobject
|
||||
CreateJavaWrapper(JNIEnv* env, const char* aClassName)
|
||||
{
|
||||
@@ -1030,6 +1034,5 @@ CreateJavaWrapper(JNIEnv* env, const char* aClassName)
|
||||
}
|
||||
|
||||
return java_stub;
|
||||
// return env->NewGlobalRef(java_stub);
|
||||
}
|
||||
|
||||
|
||||
@@ -266,35 +266,34 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
return PR_TRUE;
|
||||
|
||||
jclass clazz;
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Object")) ||
|
||||
!(hashCodeMID = env->GetMethodID(clazz, "hashCode","()I")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Boolean")) ||
|
||||
!(booleanValueMID = env->GetMethodID(clazz,"booleanValue","()Z")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Character")) ||
|
||||
!(charValueMID = env->GetMethodID(clazz,"charValue","()C")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Byte")) ||
|
||||
!(byteValueMID = env->GetMethodID(clazz,"byteValue","()B")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Short")) ||
|
||||
!(shortValueMID = env->GetMethodID(clazz,"shortValue","()S")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Integer")) ||
|
||||
@@ -303,49 +302,50 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
!(intArrayClass = (jclass) env->NewGlobalRef(clazz)) ||
|
||||
!(intValueMID = env->GetMethodID(intClass,"intValue","()I")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Long")) ||
|
||||
!(longValueMID = env->GetMethodID(clazz,"longValue","()J")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Float")) ||
|
||||
!(floatValueMID = env->GetMethodID(clazz,"floatValue","()F")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/Double")) ||
|
||||
!(doubleValueMID = env->GetMethodID(clazz,"doubleValue","()D")))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("java/lang/String")) ||
|
||||
!(stringClass = (jclass) env->NewGlobalRef(clazz)))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("org/mozilla/xpcom/nsISupports")) ||
|
||||
!(nsISupportsClass = (jclass) env->NewGlobalRef(clazz)))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
if (!(clazz = env->FindClass("org/mozilla/xpcom/XPCOMException")) ||
|
||||
!(xpcomExceptionClass = (jclass) env->NewGlobalRef(clazz)))
|
||||
{
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
if (!(clazz = env->FindClass("java/lang/Class")) ||
|
||||
!(getNameMID = env->GetMethodID(clazz, "getName","()Ljava/lang/String;"))) {
|
||||
return PR_FALSE;
|
||||
!(getNameMID = env->GetMethodID(clazz, "getName","()Ljava/lang/String;")))
|
||||
{
|
||||
goto init_error;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -365,7 +365,7 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
gJAVAtoXPCOMBindings = PL_NewDHashTable(&java_to_xpcom_hash_ops, nsnull,
|
||||
sizeof(JavaXPCOMBindingEntry), 16);
|
||||
if (!gJAVAtoXPCOMBindings) {
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
static PLDHashTableOps xpcom_to_java_hash_ops =
|
||||
@@ -384,12 +384,17 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
gXPCOMtoJAVABindings = PL_NewDHashTable(&xpcom_to_java_hash_ops, nsnull,
|
||||
sizeof(JavaXPCOMBindingEntry), 16);
|
||||
if (!gXPCOMtoJAVABindings) {
|
||||
return PR_FALSE;
|
||||
goto init_error;
|
||||
}
|
||||
|
||||
gInitialized = PR_TRUE;
|
||||
|
||||
return PR_TRUE;
|
||||
|
||||
init_error:
|
||||
// If we encounter an error during initialization, then free any globals that
|
||||
// were allocated, and return false.
|
||||
FreeJavaGlobals(env);
|
||||
return PR_FALSE;
|
||||
}
|
||||
|
||||
/*************************
|
||||
@@ -398,17 +403,35 @@ InitializeJavaGlobals(JNIEnv *env)
|
||||
void
|
||||
FreeJavaGlobals(JNIEnv* env)
|
||||
{
|
||||
if (!gInitialized)
|
||||
return;
|
||||
if (intClass) {
|
||||
env->DeleteGlobalRef(intClass);
|
||||
intClass = nsnull;
|
||||
}
|
||||
if (intArrayClass) {
|
||||
env->DeleteGlobalRef(intArrayClass);
|
||||
intArrayClass = nsnull;
|
||||
}
|
||||
if (stringClass) {
|
||||
env->DeleteGlobalRef(stringClass);
|
||||
stringClass = nsnull;
|
||||
}
|
||||
if (nsISupportsClass) {
|
||||
env->DeleteGlobalRef(nsISupportsClass);
|
||||
nsISupportsClass = nsnull;
|
||||
}
|
||||
if (xpcomExceptionClass) {
|
||||
env->DeleteGlobalRef(xpcomExceptionClass);
|
||||
xpcomExceptionClass = nsnull;
|
||||
}
|
||||
|
||||
env->DeleteGlobalRef(intClass);
|
||||
env->DeleteGlobalRef(intArrayClass);
|
||||
env->DeleteGlobalRef(stringClass);
|
||||
env->DeleteGlobalRef(nsISupportsClass);
|
||||
env->DeleteGlobalRef(xpcomExceptionClass);
|
||||
|
||||
PL_DHashTableDestroy(gJAVAtoXPCOMBindings);
|
||||
PL_DHashTableDestroy(gXPCOMtoJAVABindings);
|
||||
if (gJAVAtoXPCOMBindings) {
|
||||
PL_DHashTableDestroy(gJAVAtoXPCOMBindings);
|
||||
gJAVAtoXPCOMBindings = nsnull;
|
||||
}
|
||||
if (gXPCOMtoJAVABindings) {
|
||||
PL_DHashTableDestroy(gXPCOMtoJAVABindings);
|
||||
gXPCOMtoJAVABindings = nsnull;
|
||||
}
|
||||
|
||||
gInitialized = PR_FALSE;
|
||||
}
|
||||
@@ -419,8 +442,8 @@ FreeJavaGlobals(JNIEnv* env)
|
||||
*********************************************************/
|
||||
JavaXPCOMInstance::JavaXPCOMInstance(nsISupports* aInstance,
|
||||
nsIInterfaceInfo* aIInfo)
|
||||
: mInstance(aInstance),
|
||||
mIInfo(aIInfo)
|
||||
: mInstance(aInstance),
|
||||
mIInfo(aIInfo)
|
||||
{
|
||||
NS_ADDREF(mInstance);
|
||||
}
|
||||
@@ -455,13 +478,10 @@ CreateJavaXPCOMInstance(nsISupports* aXPCOMObject, const nsIID* aIID)
|
||||
|
||||
|
||||
nsresult
|
||||
GetIIDForMethodParam(nsIInterfaceInfo *iinfo,
|
||||
const nsXPTMethodInfo *methodInfo,
|
||||
const nsXPTParamInfo ¶mInfo,
|
||||
PRUint16 methodIndex,
|
||||
nsXPTCMiniVariant *dispatchParams,
|
||||
PRBool isFullVariantArray,
|
||||
nsID &result)
|
||||
GetIIDForMethodParam(nsIInterfaceInfo *iinfo, const nsXPTMethodInfo *methodInfo,
|
||||
const nsXPTParamInfo ¶mInfo, PRUint16 methodIndex,
|
||||
nsXPTCMiniVariant *dispatchParams,
|
||||
PRBool isFullVariantArray, nsID &result)
|
||||
{
|
||||
nsresult rv;
|
||||
|
||||
|
||||
@@ -86,12 +86,12 @@ public:
|
||||
JavaXPCOMInstance(nsISupports* aInstance, nsIInterfaceInfo* aIInfo);
|
||||
~JavaXPCOMInstance();
|
||||
|
||||
nsISupports* GetInstance() { return mInstance; }
|
||||
nsIInterfaceInfo* InterfaceInfo() { return mIInfo; }
|
||||
nsISupports* GetInstance() { return mInstance; }
|
||||
nsIInterfaceInfo* InterfaceInfo() { return mIInfo; }
|
||||
|
||||
private:
|
||||
nsISupports* mInstance;
|
||||
nsCOMPtr<nsIInterfaceInfo> mIInfo;
|
||||
nsISupports* mInstance;
|
||||
nsCOMPtr<nsIInterfaceInfo> mIInfo;
|
||||
};
|
||||
|
||||
JavaXPCOMInstance* CreateJavaXPCOMInstance(nsISupports* aXPCOMObject,
|
||||
|
||||
@@ -805,7 +805,6 @@ nsJavaXPTCStub::GetRetvalSig(const nsXPTParamInfo* aParamInfo,
|
||||
aRetvalSig.Append("Lorg/mozilla/xpcom/nsISupports;");
|
||||
break;
|
||||
|
||||
// XXX Probably won't work for 64 bit addr
|
||||
case nsXPTType::T_VOID:
|
||||
aRetvalSig.Append("I");
|
||||
break;
|
||||
|
||||
@@ -56,7 +56,7 @@ nsJavaXPTCStubWeakRef::~nsJavaXPTCStubWeakRef()
|
||||
NS_IMPL_ADDREF(nsJavaXPTCStubWeakRef)
|
||||
NS_IMPL_RELEASE(nsJavaXPTCStubWeakRef)
|
||||
|
||||
NS_IMPL_THREADSAFE_QUERY_INTERFACE1(nsJavaXPTCStubWeakRef, nsIWeakReference)
|
||||
NS_IMPL_QUERY_INTERFACE1(nsJavaXPTCStubWeakRef, nsIWeakReference)
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJavaXPTCStubWeakRef::QueryReferent(const nsIID& aIID, void** aInstancePtr)
|
||||
|
||||
@@ -45,9 +45,9 @@
|
||||
class nsJavaXPTCStubWeakRef : public nsIWeakReference
|
||||
{
|
||||
public:
|
||||
nsJavaXPTCStubWeakRef(JNIEnv* env, jobject aJavaObject);
|
||||
virtual ~nsJavaXPTCStubWeakRef();
|
||||
NS_DECL_ISUPPORTS
|
||||
nsJavaXPTCStubWeakRef(JNIEnv* env, jobject aJavaObject);
|
||||
virtual ~nsJavaXPTCStubWeakRef();
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIWEAKREFERENCE
|
||||
|
||||
protected:
|
||||
|
||||
Reference in New Issue
Block a user