From dc3066d41ce4af6c979fa724d2515ee2db1ce37a Mon Sep 17 00:00:00 2001 From: "pedemont%us.ibm.com" Date: Wed, 27 Sep 2006 15:09:42 +0000 Subject: [PATCH] Added NS_NewArray function. Used by testcase. Not part of default build. Original committer: pedemont%us.ibm.com Original revision: 1.6 Original date: 2004/10/01 22:59:12 git-svn-id: svn://10.0.0.236/trunk@212501 18797224-902f-48f8-a5cc-f745e15eee43 --- .../java/xpcom/src/nsJavaInterfaces.cpp | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/mozilla/extensions/java/xpcom/src/nsJavaInterfaces.cpp b/mozilla/extensions/java/xpcom/src/nsJavaInterfaces.cpp index 0574f91b8b3..eb25042d10c 100644 --- a/mozilla/extensions/java/xpcom/src/nsJavaInterfaces.cpp +++ b/mozilla/extensions/java/xpcom/src/nsJavaInterfaces.cpp @@ -44,6 +44,7 @@ #include "nsIInterfaceInfoManager.h" #include "nsIInputStream.h" #include "nsEnumeratorUtils.h" +#include "nsArray.h" #define GECKO_NATIVE(func) Java_org_mozilla_xpcom_GeckoEmbed_##func #define XPCOM_NATIVE(func) Java_org_mozilla_xpcom_XPCOM_##func @@ -281,6 +282,37 @@ GECKO_NATIVE(NS_1NewSingletonEnumerator) (JNIEnv *env, jclass, jobject aSingleto return java_stub; } +extern "C" JNIEXPORT jobject JNICALL +GECKO_NATIVE(NS_1NewArray) (JNIEnv *env, jclass) +{ + jobject java_stub = nsnull; + + // Call XPCOM method + nsCOMPtr array; + nsresult rv = NS_NewArray(getter_AddRefs(array)); + + if (NS_SUCCEEDED(rv)) { + // wrap xpcom instance + JavaXPCOMInstance* inst; + inst = CreateJavaXPCOMInstance(array, &NS_GET_IID(nsIMutableArray)); + + if (inst) { + // create java stub + java_stub = CreateJavaWrapper(env, "nsIMutableArray"); + + if (java_stub) { + // Associate XPCOM object w/ Java stub + AddJavaXPCOMBinding(env, java_stub, inst); + } + } + } + + if (java_stub == nsnull) + ThrowXPCOMException(env, 0); + + return java_stub; +} + // JNI wrapper for calling an nsWriteSegmentFun function extern "C" JNIEXPORT jint JNICALL XPCOM_NATIVE(nsWriteSegmentFun) (JNIEnv *env, jclass that, jint aWriterFunc,