зеркало из https://github.com/mozilla/pjs.git
Remove OJI from the tree. b=485984 r/sr=jst
This commit is contained in:
Родитель
2568e2b270
Коммит
e1f29205b9
|
@ -149,9 +149,6 @@ bin/components/necko_strconv.xpt
|
|||
bin/components/necko_viewsource.xpt
|
||||
bin/components/necko_wifi.xpt
|
||||
bin/components/necko.xpt
|
||||
#ifdef OJI
|
||||
bin/components/oji.xpt
|
||||
#endif
|
||||
bin/components/loginmgr.xpt
|
||||
bin/components/places.xpt
|
||||
bin/components/plugin.xpt
|
||||
|
|
|
@ -156,9 +156,6 @@ bin\components\necko_res.xpt
|
|||
bin\components\necko_socket.xpt
|
||||
bin\components\necko_viewsource.xpt
|
||||
bin\components\necko_wifi.xpt
|
||||
#ifdef OJI
|
||||
bin\components\oji.xpt
|
||||
#endif
|
||||
bin\components\loginmgr.xpt
|
||||
bin\components\places.xpt
|
||||
bin\components\plugin.xpt
|
||||
|
|
26
configure.in
26
configure.in
|
@ -2674,17 +2674,6 @@ case "$target" in
|
|||
esac
|
||||
AC_SUBST(NO_LD_ARCHIVE_FLAGS)
|
||||
|
||||
dnl
|
||||
dnl Indicate that platform requires special thread safe
|
||||
dnl locking when starting up the OJI JVM
|
||||
dnl (see mozilla/modules/oji/src/nsJVMManager.cpp)
|
||||
dnl ========================================================
|
||||
case "$target" in
|
||||
*-hpux*)
|
||||
AC_DEFINE(MOZ_OJI_REQUIRE_THREAD_SAFE_ON_STARTUP)
|
||||
;;
|
||||
esac
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Flags to strip unused symbols from .so components
|
||||
dnl ========================================================
|
||||
|
@ -4488,7 +4477,6 @@ MOZ_OGG=1
|
|||
MOZ_SYDNEYAUDIO=
|
||||
MOZ_WAVE=1
|
||||
MOZ_MEDIA=
|
||||
MOZ_OJI=1
|
||||
MOZ_PERMISSIONS=1
|
||||
MOZ_PLACES=
|
||||
MOZ_PLAINTEXT_EDITOR_ONLY=
|
||||
|
@ -4603,7 +4591,6 @@ basic)
|
|||
MOZ_NO_INSPECTOR_APIS=1
|
||||
MOZ_NO_XPCOM_OBSOLETE=1
|
||||
MOZ_NO_FAST_LOAD=1
|
||||
MOZ_OJI=
|
||||
MOZ_PLAINTEXT_EDITOR_ONLY=1
|
||||
# MOZ_PLUGINS=
|
||||
MOZ_PREF_EXTENSIONS=
|
||||
|
@ -4646,7 +4633,6 @@ minimal)
|
|||
MOZ_NO_INSPECTOR_APIS=1
|
||||
MOZ_NO_XPCOM_OBSOLETE=1
|
||||
MOZ_NO_FAST_LOAD=1
|
||||
MOZ_OJI=
|
||||
MOZ_PLAINTEXT_EDITOR_ONLY=1
|
||||
MOZ_PLUGINS=
|
||||
MOZ_PREF_EXTENSIONS=
|
||||
|
@ -5306,17 +5292,6 @@ MOZ_ARG_DISABLE_BOOL(dbm,
|
|||
NSS_DISABLE_DBM=1,
|
||||
NSS_DISABLE_DBM=)
|
||||
|
||||
dnl ========================================================
|
||||
dnl = Open JVM Interface (OJI) support
|
||||
dnl ========================================================
|
||||
MOZ_ARG_DISABLE_BOOL(oji,
|
||||
[ --disable-oji Disable Open JVM Integration support],
|
||||
MOZ_OJI=,
|
||||
MOZ_OJI=1)
|
||||
if test -n "$MOZ_OJI"; then
|
||||
AC_DEFINE(OJI)
|
||||
fi
|
||||
|
||||
dnl bi-directional support always on
|
||||
IBMBIDI=1
|
||||
AC_DEFINE(IBMBIDI)
|
||||
|
@ -8019,7 +7994,6 @@ AC_SUBST(MOZ_EXTENSIONS)
|
|||
AC_SUBST(MOZ_IMG_DECODERS)
|
||||
AC_SUBST(MOZ_IMG_ENCODERS)
|
||||
AC_SUBST(MOZ_JSDEBUGGER)
|
||||
AC_SUBST(MOZ_OJI)
|
||||
AC_SUBST(MOZ_NO_XPCOM_OBSOLETE)
|
||||
AC_SUBST(MOZ_PLUGINS)
|
||||
AC_SUBST(ENABLE_EAZEL_PROFILER)
|
||||
|
|
|
@ -147,19 +147,11 @@
|
|||
#include "nsIPluginHost.h"
|
||||
#include "nsPIPluginHost.h"
|
||||
|
||||
#ifdef OJI
|
||||
// HTMLAppletElement helper includes
|
||||
#include "nsIJVMManager.h"
|
||||
#include "nsILiveConnectManager.h"
|
||||
#include "nsIJVMPluginInstance.h"
|
||||
#endif
|
||||
|
||||
// Oh, did I mention that I hate Microsoft for doing this to me?
|
||||
#ifdef XP_WIN
|
||||
#undef GetClassName
|
||||
#endif
|
||||
|
||||
|
||||
// HTMLOptionsCollection includes
|
||||
#include "nsIDOMHTMLOptionElement.h"
|
||||
#include "nsIDOMNSHTMLOptionElement.h"
|
||||
|
@ -1455,14 +1447,6 @@ jsval nsDOMClassInfo::sOncut_id = JSVAL_VOID;
|
|||
jsval nsDOMClassInfo::sOnpaste_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sJava_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sPackages_id = JSVAL_VOID;
|
||||
#ifdef OJI
|
||||
jsval nsDOMClassInfo::sNetscape_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sSun_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sJavaObject_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sJavaClass_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sJavaArray_id = JSVAL_VOID;
|
||||
jsval nsDOMClassInfo::sJavaMember_id = JSVAL_VOID;
|
||||
#endif
|
||||
|
||||
static const JSClass *sObjectClass = nsnull;
|
||||
const JSClass *nsDOMClassInfo::sXPCNativeWrapperClass = nsnull;
|
||||
|
@ -1654,14 +1638,6 @@ nsDOMClassInfo::DefineStaticJSVals(JSContext *cx)
|
|||
SET_JSVAL_TO_STRING(sOnpaste_id, cx, "onpaste");
|
||||
SET_JSVAL_TO_STRING(sJava_id, cx, "java");
|
||||
SET_JSVAL_TO_STRING(sPackages_id, cx, "Packages");
|
||||
#ifdef OJI
|
||||
SET_JSVAL_TO_STRING(sNetscape_id, cx, "netscape");
|
||||
SET_JSVAL_TO_STRING(sSun_id, cx, "sun");
|
||||
SET_JSVAL_TO_STRING(sJavaObject_id, cx, "JavaObject");
|
||||
SET_JSVAL_TO_STRING(sJavaClass_id, cx, "JavaClass");
|
||||
SET_JSVAL_TO_STRING(sJavaArray_id, cx, "JavaArray");
|
||||
SET_JSVAL_TO_STRING(sJavaMember_id, cx, "JavaMember");
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -4420,14 +4396,6 @@ nsDOMClassInfo::ShutDown()
|
|||
sOnpaste_id = JSVAL_VOID;
|
||||
sJava_id = JSVAL_VOID;
|
||||
sPackages_id = JSVAL_VOID;
|
||||
#ifdef OJI
|
||||
sNetscape_id = JSVAL_VOID;
|
||||
sSun_id = JSVAL_VOID;
|
||||
sJavaObject_id = JSVAL_VOID;
|
||||
sJavaClass_id = JSVAL_VOID;
|
||||
sJavaArray_id = JSVAL_VOID;
|
||||
sJavaMember_id = JSVAL_VOID;
|
||||
#endif
|
||||
|
||||
NS_IF_RELEASE(sXPConnect);
|
||||
NS_IF_RELEASE(sSecMan);
|
||||
|
@ -6517,12 +6485,7 @@ nsWindowSH::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext *cx,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
if (id == sJava_id || id == sPackages_id
|
||||
#ifdef OJI
|
||||
|| id == sNetscape_id || id == sSun_id || id == sJavaObject_id ||
|
||||
id == sJavaClass_id || id == sJavaArray_id || id == sJavaMember_id
|
||||
#endif
|
||||
) {
|
||||
if (id == sJava_id || id == sPackages_id) {
|
||||
static PRBool isResolvingJavaProperties;
|
||||
|
||||
if (!isResolvingJavaProperties) {
|
||||
|
@ -9651,41 +9614,7 @@ nsHTMLPluginObjElementSH::GetJavaPluginJSObject(JSContext *cx, JSObject *obj,
|
|||
JSObject **plugin_obj,
|
||||
JSObject **plugin_proto)
|
||||
{
|
||||
#ifdef OJI
|
||||
*plugin_obj = nsnull;
|
||||
*plugin_proto = nsnull;
|
||||
|
||||
nsCOMPtr<nsIJVMManager> jvm(do_GetService(nsIJVMManager::GetCID()));
|
||||
|
||||
if (!jvm) {
|
||||
#endif
|
||||
return NS_OK;
|
||||
#ifdef OJI
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIJVMPluginInstance> javaPluginInstance =
|
||||
do_QueryInterface(plugin_inst);
|
||||
|
||||
if (!javaPluginInstance) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
jobject appletObject = nsnull;
|
||||
nsresult rv = javaPluginInstance->GetJavaObject(&appletObject);
|
||||
|
||||
if (NS_FAILED(rv) || !appletObject) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsILiveConnectManager> manager =
|
||||
do_GetService(nsIJVMManager::GetCID());
|
||||
|
||||
if (!manager) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
return manager->WrapJavaObject(cx, appletObject, plugin_obj);
|
||||
#endif /* OJI */
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
|
@ -9835,18 +9764,9 @@ nsHTMLPluginObjElementSH::NewResolve(nsIXPConnectWrappedNative *wrapper,
|
|||
nsCOMPtr<nsIPluginInstanceInternal> plugin_internal =
|
||||
do_QueryInterface(pi);
|
||||
|
||||
#ifdef OJI
|
||||
nsCOMPtr<nsIJVMPluginInstance> java_plugin_instance =
|
||||
do_QueryInterface(pi);
|
||||
#endif
|
||||
|
||||
// Bail if we don't have a plugin instance or this is an NPRuntime or Java
|
||||
// plugin since the following code is only useful for XPCOM plugins.
|
||||
if (!pi || (plugin_internal && plugin_internal->GetJSObject(cx))
|
||||
#ifdef OJI
|
||||
|| java_plugin_instance
|
||||
#endif
|
||||
) {
|
||||
if (!pi || (plugin_internal && plugin_internal->GetJSObject(cx))) {
|
||||
return nsHTMLElementSH::NewResolve(wrapper, cx, obj, id, flags, objp,
|
||||
_retval);
|
||||
}
|
||||
|
|
|
@ -329,14 +329,6 @@ protected:
|
|||
static jsval sOnpaste_id;
|
||||
static jsval sJava_id;
|
||||
static jsval sPackages_id;
|
||||
#ifdef OJI
|
||||
static jsval sNetscape_id;
|
||||
static jsval sSun_id;
|
||||
static jsval sJavaObject_id;
|
||||
static jsval sJavaClass_id;
|
||||
static jsval sJavaArray_id;
|
||||
static jsval sJavaMember_id;
|
||||
#endif
|
||||
|
||||
static const JSClass *sXPCNativeWrapperClass;
|
||||
};
|
||||
|
|
|
@ -74,10 +74,6 @@
|
|||
#include "nsIPluginHost.h"
|
||||
#include "nsPIPluginHost.h"
|
||||
#include "nsGeolocation.h"
|
||||
#ifdef OJI
|
||||
#include "nsIJVMManager.h"
|
||||
#include "nsILiveConnectManager.h"
|
||||
#endif
|
||||
#include "nsContentCID.h"
|
||||
#include "nsLayoutStatics.h"
|
||||
#include "nsCycleCollector.h"
|
||||
|
@ -346,9 +342,6 @@ static PRBool gDOMWindowDumpEnabled = PR_FALSE;
|
|||
PR_END_MACRO
|
||||
|
||||
// CIDs
|
||||
#ifdef OJI
|
||||
static NS_DEFINE_CID(kJVMServiceCID, NS_JVMMANAGER_CID);
|
||||
#endif
|
||||
static NS_DEFINE_CID(kXULControllersCID, NS_XULCONTROLLERS_CID);
|
||||
|
||||
static const char sJSStackContractID[] = "@mozilla.org/js/xpc/ContextStack;1";
|
||||
|
@ -5810,37 +5803,6 @@ nsGlobalWindow::InitJavaProperties()
|
|||
// No NPRuntime enabled Java plugin found, null out the owner we
|
||||
// would have used in that case as it's no longer needed.
|
||||
mDummyJavaPluginOwner = nsnull;
|
||||
|
||||
#ifdef OJI
|
||||
JSContext *cx = (JSContext *)scx->GetNativeContext();
|
||||
|
||||
nsCOMPtr<nsILiveConnectManager> manager =
|
||||
do_GetService(nsIJVMManager::GetCID());
|
||||
|
||||
if (!manager) {
|
||||
return;
|
||||
}
|
||||
|
||||
PRBool started = PR_FALSE;
|
||||
manager->StartupLiveConnect(::JS_GetRuntime(cx), started);
|
||||
|
||||
nsCOMPtr<nsIJVMManager> jvmManager(do_QueryInterface(manager));
|
||||
|
||||
if (!jvmManager) {
|
||||
return;
|
||||
}
|
||||
|
||||
PRBool javaEnabled = PR_FALSE;
|
||||
if (NS_FAILED(jvmManager->GetJavaEnabled(&javaEnabled)) || !javaEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
{
|
||||
JSAutoRequest ar(cx);
|
||||
|
||||
manager->InitLiveConnectClasses(cx, mJSObject);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void*
|
||||
|
@ -9291,17 +9253,6 @@ nsNavigator::JavaEnabled(PRBool *aReturn)
|
|||
{
|
||||
*aReturn = nsContentUtils::GetBoolPref("security.enable_java");
|
||||
|
||||
#ifdef OJI
|
||||
// Ask the nsIJVMManager if Java is enabled
|
||||
nsCOMPtr<nsIJVMManager> jvmService = do_GetService(kJVMServiceCID);
|
||||
if (jvmService) {
|
||||
jvmService->GetJavaEnabled(aReturn);
|
||||
}
|
||||
else {
|
||||
*aReturn = PR_FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "jni.h"
|
||||
#include "npapi.h"
|
||||
|
||||
#include "nsISupports.h"
|
||||
|
@ -46,10 +45,6 @@
|
|||
#include "XPConnect.h"
|
||||
#endif
|
||||
|
||||
#ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
#include "LiveConnect.h"
|
||||
#endif
|
||||
|
||||
#include "LegacyPlugin.h"
|
||||
|
||||
#ifdef XPC_IDISPATCH_SUPPORT
|
||||
|
@ -244,26 +239,10 @@ NPError NPP_Initialize(void)
|
|||
void NPP_Shutdown(void)
|
||||
{
|
||||
ATLTRACE(_T("NPP_Shutdown()\n"));
|
||||
#ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
liveconnect_Shutdown();
|
||||
#endif
|
||||
_Module.Unlock();
|
||||
}
|
||||
|
||||
|
||||
// NPP_GetJavaClass
|
||||
//
|
||||
// Return the Java class representing this plugin
|
||||
//
|
||||
jref NPP_GetJavaClass(void)
|
||||
{
|
||||
ATLTRACE(_T("NPP_GetJavaClass()\n"));
|
||||
#ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
return liveconnect_GetJavaClass();
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#define MIME_OLEOBJECT1 "application/x-oleobject"
|
||||
#define MIME_OLEOBJECT2 "application/oleobject"
|
||||
|
||||
|
|
|
@ -1,545 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Adam Lock <adamlock@netscape.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "jni.h"
|
||||
#include "npapi.h"
|
||||
|
||||
#include "_java/java_lang_Throwable.h"
|
||||
#include "_java/java_lang_Error.h"
|
||||
#include "_java/java_lang_String.h"
|
||||
#include "_java/java_lang_Boolean.h"
|
||||
#include "_java/java_lang_Number.h"
|
||||
#include "_java/java_lang_Integer.h"
|
||||
#include "_java/java_lang_Long.h"
|
||||
// TODO:
|
||||
// These things require certain native statics to be implemented
|
||||
// so they're commented out for the time being.
|
||||
//#include "_java/java_lang_Double.h"
|
||||
//#include "_java/java_lang_Float.h"
|
||||
#include "_java/java_lang_Character.h"
|
||||
#include "_java/netscape_plugin_Plugin.h"
|
||||
#include "_java/MozAxPlugin.h"
|
||||
|
||||
#include "LegacyPlugin.h"
|
||||
#include "LiveConnect.h"
|
||||
|
||||
void liveconnect_Shutdown()
|
||||
{
|
||||
JRIEnv* env = NPN_GetJavaEnv();
|
||||
if (env) {
|
||||
unuse_MozAxPlugin(env);
|
||||
unuse_netscape_plugin_Plugin(env);
|
||||
unuse_java_lang_Error(env);
|
||||
// unuse_java_lang_String(env);
|
||||
unuse_java_lang_Number(env);
|
||||
unuse_java_lang_Boolean(env);
|
||||
unuse_java_lang_Integer(env);
|
||||
unuse_java_lang_Long(env);
|
||||
// unuse_java_lang_Float(env);
|
||||
// unuse_java_lang_Double(env);
|
||||
unuse_java_lang_Character(env);
|
||||
}
|
||||
}
|
||||
|
||||
jref liveconnect_GetJavaClass()
|
||||
{
|
||||
JRIEnv* env = NPN_GetJavaEnv();
|
||||
if (env) {
|
||||
// Note: The order of these is important (for some unknown reason)
|
||||
// and was determined through trial and error. Do not rearrange
|
||||
// without testing the new order!
|
||||
use_netscape_plugin_Plugin(env);
|
||||
jref myClass = (jref) use_MozAxPlugin(env);
|
||||
use_java_lang_Error(env);
|
||||
// use_java_lang_String(env);
|
||||
use_java_lang_Number(env);
|
||||
use_java_lang_Boolean(env);
|
||||
use_java_lang_Integer(env);
|
||||
use_java_lang_Long(env);
|
||||
// use_java_lang_Float(env);
|
||||
// use_java_lang_Double(env);
|
||||
use_java_lang_Character(env);
|
||||
return myClass;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// The following will be callable from Javascript through LiveConnect
|
||||
HRESULT
|
||||
_GetIDispatchFromJRI(JRIEnv *env, struct MozAxPlugin* self, IDispatch **pdisp)
|
||||
{
|
||||
if (pdisp == NULL || env == NULL || self == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
*pdisp = NULL;
|
||||
|
||||
// Note: You get a nasty crash calling self->getPeer(env), this obscure cast fixes
|
||||
// it. More details in the link:
|
||||
//
|
||||
// http://groups.google.com/groups?selm=385D9543.4087F1C6%40ermapper.com.au&output=gplain
|
||||
|
||||
NPP npp = (NPP) netscape_plugin_Plugin_getPeer(env,
|
||||
reinterpret_cast<netscape_plugin_Plugin*> (self));
|
||||
PluginInstanceData *pData = (PluginInstanceData *) npp->pdata;
|
||||
if (pData == NULL)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
IUnknownPtr unk;
|
||||
HRESULT hr = pData->pControlSite->GetControlUnknown(&unk);
|
||||
if (unk.GetInterfacePtr() == NULL)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
IDispatchPtr disp = unk;
|
||||
if (disp.GetInterfacePtr() == NULL)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*pdisp = disp.GetInterfacePtr();
|
||||
(*pdisp)->AddRef();
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
_VariantToJRIObject(JRIEnv *env, VARIANT *v, java_lang_Object **o)
|
||||
{
|
||||
if (v == NULL || env == NULL || o == NULL)
|
||||
{
|
||||
return E_INVALIDARG;
|
||||
}
|
||||
|
||||
*o = NULL;
|
||||
|
||||
// TODO - VT_BYREF will cause problems
|
||||
if (v->vt == VT_EMPTY)
|
||||
{
|
||||
return S_OK;
|
||||
}
|
||||
else if (v->vt == VT_BOOL)
|
||||
{
|
||||
jbool value = (v->boolVal == VARIANT_TRUE) ? JRITrue : JRIFalse;
|
||||
java_lang_Boolean *j = java_lang_Boolean_new(env,
|
||||
class_java_lang_Boolean(env), value);
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
}
|
||||
else if (v->vt == VT_I4)
|
||||
{
|
||||
jlong value = v->lVal;
|
||||
java_lang_Long *j = java_lang_Long_new(env,
|
||||
class_java_lang_Long(env), value);
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
}
|
||||
else if (v->vt == VT_I2)
|
||||
{
|
||||
jlong value = v->iVal;
|
||||
java_lang_Long *j = java_lang_Long_new(env,
|
||||
class_java_lang_Long(env), value);
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
}
|
||||
/* else if (v->vt == VT_R4)
|
||||
{
|
||||
jfloat value = v->fltVal;
|
||||
java_lang_Float *j = java_lang_Float_new(env,
|
||||
class_java_lang_Float(env), value);
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
}
|
||||
else if (v->vt == VT_R8)
|
||||
{
|
||||
jdouble value = v->dblVal;
|
||||
java_lang_Double *j = java_lang_Double_new(env,
|
||||
class_java_lang_Double(env), value);
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
} */
|
||||
else if (v->vt == VT_BSTR)
|
||||
{
|
||||
USES_CONVERSION;
|
||||
char * value = OLE2A(v->bstrVal);
|
||||
java_lang_String *j = JRI_NewStringUTF(env, value, strlen(value));
|
||||
*o = reinterpret_cast<java_lang_Object *>(j);
|
||||
return S_OK;
|
||||
}
|
||||
/* TODO else if VT_UI1 etc. */
|
||||
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
HRESULT
|
||||
_JRIObjectToVariant(JRIEnv *env, java_lang_Object *o, VARIANT *v)
|
||||
{
|
||||
VariantInit(v);
|
||||
if (JRI_IsInstanceOf(env, (jref) o, class_java_lang_String(env)))
|
||||
{
|
||||
USES_CONVERSION;
|
||||
const char *value = JRI_GetStringUTFChars(env, reinterpret_cast<java_lang_String *>(o));
|
||||
v->vt = VT_BSTR;
|
||||
v->bstrVal = SysAllocString(A2COLE(value));
|
||||
}
|
||||
else if (JRI_IsInstanceOf(env, (jref) o, class_java_lang_Boolean(env)))
|
||||
{
|
||||
jbool value = java_lang_Boolean_booleanValue(env, reinterpret_cast<java_lang_Boolean *>(o));
|
||||
v->vt = VT_BOOL;
|
||||
v->boolVal = value == JRITrue ? VARIANT_TRUE : VARIANT_FALSE;
|
||||
}
|
||||
else if (JRI_IsInstanceOf(env, o, class_java_lang_Integer(env)))
|
||||
{
|
||||
jint value = java_lang_Integer_intValue(env, reinterpret_cast<java_lang_Integer *>(o));
|
||||
v->vt = VT_I4;
|
||||
v->lVal = value;
|
||||
}
|
||||
else if (JRI_IsInstanceOf(env, o, class_java_lang_Long(env)))
|
||||
{
|
||||
jlong value = java_lang_Long_longValue(env, reinterpret_cast<java_lang_Long *>(o));
|
||||
v->vt = VT_I4;
|
||||
v->lVal = value;
|
||||
}
|
||||
/* else if (JRI_IsInstanceOf(env, o, class_java_lang_Double(env)))
|
||||
{
|
||||
jdouble value = java_lang_Double_doubleValue(env, reinterpret_cast<java_lang_Double *>(o));
|
||||
v->vt = VT_R8;
|
||||
v->dblVal = value;
|
||||
}
|
||||
else if (JRI_IsInstanceOf(env, o, class_java_lang_Float(env)))
|
||||
{
|
||||
jfloat value = java_lang_Float_floatValue(env, reinterpret_cast<java_lang_Float *>(o));
|
||||
v->vt = VT_R4;
|
||||
v->fltVal = value;
|
||||
} */
|
||||
else if (JRI_IsInstanceOf(env, o, class_java_lang_Character(env)))
|
||||
{
|
||||
jchar value = java_lang_Character_charValue(env, reinterpret_cast<java_lang_Character *>(o));
|
||||
v->vt = VT_UI1;
|
||||
v->bVal = value;
|
||||
}
|
||||
else if (JRI_IsInstanceOf(env, o, class_java_lang_Number(env)))
|
||||
{
|
||||
jlong value = java_lang_Number_longValue(env, reinterpret_cast<java_lang_Number *>(o));
|
||||
v->vt = VT_I4;
|
||||
v->lVal = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO dump diagnostic error here
|
||||
return E_FAIL;
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
struct java_lang_Object *
|
||||
_InvokeFromJRI(JRIEnv *env, struct MozAxPlugin* self, struct java_lang_String *func, int nargs, java_lang_Object *args[])
|
||||
{
|
||||
HRESULT hr;
|
||||
DISPID dispid = 0;
|
||||
|
||||
// call the requested function
|
||||
const char* funcName = JRI_GetStringUTFChars(env, func);
|
||||
|
||||
IDispatchPtr disp;
|
||||
if (FAILED(_GetIDispatchFromJRI(env, self, &disp)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
_variant_t *vargs = new _variant_t[nargs];
|
||||
for (int i = 0; i < nargs; i++)
|
||||
{
|
||||
if (FAILED(_JRIObjectToVariant(env, args[i], &vargs[i])))
|
||||
{
|
||||
delete []vargs;
|
||||
char error[64];
|
||||
sprintf(error, "Argument %d could not be converted into a variant", i);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
USES_CONVERSION;
|
||||
OLECHAR FAR* szMember = A2OLE(funcName);
|
||||
hr = disp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[128];
|
||||
memset(error, 0, sizeof(error));
|
||||
_snprintf(error, sizeof(error) - 1, "invoke failed, member \"%s\" not found, hr=0x%08x", funcName, hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
DISPPARAMS dispparams = {NULL, NULL, 0, 0};
|
||||
dispparams.rgvarg = vargs;
|
||||
dispparams.cArgs = nargs;
|
||||
|
||||
_variant_t vResult;
|
||||
hr = disp->Invoke(
|
||||
dispid,
|
||||
IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_METHOD,
|
||||
&dispparams, &vResult, NULL, NULL);
|
||||
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[64];
|
||||
sprintf(error, "invoke failed, result from object = 0x%08x", hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
java_lang_Object *oResult = NULL;
|
||||
_VariantToJRIObject(env, &vResult, &oResult);
|
||||
|
||||
return reinterpret_cast<java_lang_Object *>(oResult);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Native Methods:
|
||||
* These are the native methods which we are implementing.
|
||||
******************************************************************************/
|
||||
|
||||
/*** private native xinvoke (Ljava/lang/String;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvoke(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a)
|
||||
{
|
||||
return _InvokeFromJRI(env, self, a, 0, NULL);
|
||||
}
|
||||
|
||||
/*** private native xinvoke1 (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvoke1(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_Object *b)
|
||||
{
|
||||
java_lang_Object *args[1];
|
||||
args[0] = b;
|
||||
return _InvokeFromJRI(env, self, a, sizeof(args) / sizeof(args[0]), args);
|
||||
}
|
||||
|
||||
/*** private native xinvoke2 (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvoke2(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_Object *b, struct java_lang_Object *c)
|
||||
{
|
||||
java_lang_Object *args[2];
|
||||
args[0] = b;
|
||||
args[1] = c;
|
||||
return _InvokeFromJRI(env, self, a, sizeof(args) / sizeof(args[0]), args);
|
||||
}
|
||||
|
||||
/*** private native xinvoke3 (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvoke3(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_Object *b, struct java_lang_Object *c, struct java_lang_Object *d)
|
||||
{
|
||||
java_lang_Object *args[3];
|
||||
args[0] = b;
|
||||
args[1] = c;
|
||||
args[2] = d;
|
||||
return _InvokeFromJRI(env, self, a, sizeof(args) / sizeof(args[0]), args);
|
||||
}
|
||||
|
||||
/*** private native xinvoke4 (Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvoke4(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_Object *b, struct java_lang_Object *c, struct java_lang_Object *d, struct java_lang_Object *e)
|
||||
{
|
||||
java_lang_Object *args[4];
|
||||
args[0] = b;
|
||||
args[1] = c;
|
||||
args[2] = d;
|
||||
args[3] = e;
|
||||
return _InvokeFromJRI(env, self, a, sizeof(args) / sizeof(args[0]), args);
|
||||
}
|
||||
|
||||
/*** private native xinvokeX (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xinvokeX(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, jobjectArray b)
|
||||
{
|
||||
// Turn the Java array of objects into a C++ array
|
||||
jsize length = JRI_GetObjectArrayLength(env, b);
|
||||
java_lang_Object **args = NULL;
|
||||
if (length)
|
||||
{
|
||||
args = (java_lang_Object **) malloc(length * sizeof(java_lang_Object *));
|
||||
for (long i = 0; i < length; i++)
|
||||
{
|
||||
args[i] = reinterpret_cast<java_lang_Object *>(JRI_GetObjectArrayElement(env, b, i));
|
||||
}
|
||||
}
|
||||
java_lang_Object *o = _InvokeFromJRI(env, self, a, length, args);
|
||||
free(args);
|
||||
return o;
|
||||
}
|
||||
|
||||
/*** private native xgetProperty (Ljava/lang/String;)Ljava/lang/Object; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Object *)
|
||||
native_MozAxPlugin_xgetProperty(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a)
|
||||
{
|
||||
HRESULT hr;
|
||||
DISPID dispid;
|
||||
_variant_t vResult;
|
||||
|
||||
IDispatchPtr disp;
|
||||
if (FAILED(_GetIDispatchFromJRI(env, self, &disp)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// return the requested property to the Java peer
|
||||
USES_CONVERSION;
|
||||
OLECHAR FAR* szMember = A2OLE(JRI_GetStringUTFChars(env, a));
|
||||
hr = disp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[128];
|
||||
memset(error, 0, sizeof(error));
|
||||
_snprintf(error, sizeof(error) - 1, "getProperty failed, member \"%s\" not found, hr=0x%08x", szMember, hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return NULL;
|
||||
}
|
||||
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
|
||||
hr = disp->Invoke(
|
||||
dispid,
|
||||
IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_PROPERTYGET,
|
||||
&dispparamsNoArgs, &vResult, NULL, NULL);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[64];
|
||||
sprintf(error, "getProperty failed, result from object = 0x%08x", hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
java_lang_Object *oResult = NULL;
|
||||
_VariantToJRIObject(env, &vResult, &oResult);
|
||||
|
||||
return oResult;
|
||||
}
|
||||
|
||||
/*** private native xsetProperty2 (Ljava/lang/String;Ljava/lang/Object;)V ***/
|
||||
extern "C" JRI_PUBLIC_API(void)
|
||||
native_MozAxPlugin_xsetProperty2(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_Object *b)
|
||||
|
||||
{
|
||||
HRESULT hr;
|
||||
DISPID dispid;
|
||||
VARIANT VarResult;
|
||||
|
||||
IDispatchPtr disp;
|
||||
if (FAILED(_GetIDispatchFromJRI(env, self, &disp)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
USES_CONVERSION;
|
||||
OLECHAR FAR* szMember = A2OLE(JRI_GetStringUTFChars(env, a));
|
||||
hr = disp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_USER_DEFAULT, &dispid);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[128];
|
||||
memset(error, 0, sizeof(error));
|
||||
_snprintf(error, sizeof(error) - 1, "setProperty failed, member \"%s\" not found, hr=0x%08x", szMember, hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return;
|
||||
}
|
||||
|
||||
_variant_t *pvars = new _variant_t[1];
|
||||
if (FAILED(_JRIObjectToVariant(env, b, &pvars[0])))
|
||||
{
|
||||
delete []pvars;
|
||||
char error[64];
|
||||
sprintf(error, "Property value could not be converted into a variant");
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return;
|
||||
}
|
||||
|
||||
DISPID dispIdPut = DISPID_PROPERTYPUT;
|
||||
|
||||
DISPPARAMS functionArgs;
|
||||
functionArgs.rgdispidNamedArgs = &dispIdPut;
|
||||
functionArgs.rgvarg = pvars;
|
||||
functionArgs.cArgs = 1;
|
||||
functionArgs.cNamedArgs = 1;
|
||||
|
||||
hr = disp->Invoke(
|
||||
dispid,
|
||||
IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_PROPERTYPUT,
|
||||
&functionArgs, &VarResult, NULL, NULL);
|
||||
|
||||
delete []pvars;
|
||||
|
||||
if (FAILED(hr))
|
||||
{
|
||||
char error[64];
|
||||
sprintf(error, "setProperty failed, result from object = 0x%08x", hr);
|
||||
JRI_ThrowNew(env, class_java_lang_Error(env), error);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*** private native xsetProperty1 (Ljava/lang/String;Ljava/lang/String;)V ***/
|
||||
extern "C" JRI_PUBLIC_API(void)
|
||||
native_MozAxPlugin_xsetProperty1(JRIEnv* env, struct MozAxPlugin* self, struct java_lang_String *a, struct java_lang_String *b)
|
||||
{
|
||||
native_MozAxPlugin_xsetProperty2(env, self, a, reinterpret_cast<java_lang_Object *>(b));
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*** private native printStackTrace0 (Ljava/io/PrintStream;)V ***/
|
||||
extern "C" JRI_PUBLIC_API(void)
|
||||
native_java_lang_Throwable_printStackTrace0(JRIEnv* env, struct java_lang_Throwable* self, struct java_io_PrintStream *a)
|
||||
{
|
||||
}
|
||||
|
||||
/*** public native fillInStackTrace ()Ljava/lang/Throwable; ***/
|
||||
extern "C" JRI_PUBLIC_API(struct java_lang_Throwable *)
|
||||
native_java_lang_Throwable_fillInStackTrace(JRIEnv* env, struct java_lang_Throwable* self)
|
||||
{
|
||||
return self;
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Adam Lock <adamlock@netscape.com>
|
||||
* Paul Oswald <paul.oswald@isinet.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#ifndef LIVECONNECT_H
|
||||
#define LIVECONNECT_H
|
||||
|
||||
extern void liveconnect_Shutdown();
|
||||
extern jref liveconnect_GetJavaClass();
|
||||
|
||||
#endif
|
|
@ -53,7 +53,6 @@ GRE_MODULE = 1
|
|||
|
||||
REQUIRES = \
|
||||
xpcom \
|
||||
java \
|
||||
plugin \
|
||||
string \
|
||||
dom \
|
||||
|
@ -86,35 +85,6 @@ NO_INSTALL = 1
|
|||
# Path to the Mozilla ActiveX common dir (some files are copied from there)
|
||||
AXCOMMONSRC=$(srcdir)/../common
|
||||
|
||||
############
|
||||
# LiveConnect settings
|
||||
|
||||
# MOZ_ACTIVEX_PLUGIN_LIVECONNECT = 1
|
||||
|
||||
# Settings that specify where the PluginSDK, Java compiler (javac or oldjavac),
|
||||
# Java header file generator (javah) and classes live.
|
||||
#
|
||||
# You need the Netscape PluginSDK:
|
||||
#
|
||||
# http://home.netscape.com/comprod/development_partners/plugin_api/index.html
|
||||
#
|
||||
# You also need a JDK with the old java compiler. Anything from 1.3
|
||||
# downwards should do. See here for various JDK releases:
|
||||
#
|
||||
# http://java.sun.com/products/archive/index.html
|
||||
#
|
||||
# You should use the javah found in the plugin SDK because this generates
|
||||
# the JRI stubs.
|
||||
|
||||
ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
PLUGINSDK = c:/m/PluginSDK
|
||||
SDK_JAVADIR = c:/jdk1.02
|
||||
SDK_JAVAH = $(PLUGINSDK)/bin/win32/javah
|
||||
SDK_JAVAC = $(SDK_JAVADIR)/bin/javac
|
||||
SDK_CLASSES = $(PLUGINSDK)/classes/java_30.zip
|
||||
SDK_CLASSPATH = "$(subst /,\,$(SDK_CLASSES));."
|
||||
endif
|
||||
|
||||
############
|
||||
# XPConnect settings
|
||||
|
||||
|
@ -158,7 +128,7 @@ _AXCOMMON_CPPSRCS = \
|
|||
ItemContainer.cpp \
|
||||
PropertyBag.cpp \
|
||||
$(NULL)
|
||||
CPPSRCS += LiveConnect.cpp $(_AXCOMMON_CPPSRCS)
|
||||
CPPSRCS += $(_AXCOMMON_CPPSRCS)
|
||||
CSRCS += javastubs.c
|
||||
endif
|
||||
|
||||
|
@ -206,16 +176,6 @@ LIBS = \
|
|||
$(NSPR_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
# LiveConnect links to XPCOM glue
|
||||
ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
$(DIST)/lib/$(LIB_PREFIX)string_s.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)
|
||||
LIBS += \
|
||||
$(DIST)/lib/$(LIB_PREFIX)string_s.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)
|
||||
endif
|
||||
|
||||
# XPConnect links to XPCOM and the shared activex lib
|
||||
ifdef XPC_IDISPATCH_SUPPORT
|
||||
EXTRA_DSO_LDOPTS += \
|
||||
|
@ -225,8 +185,6 @@ EXTRA_DSO_LDOPTS += \
|
|||
$(NULL)
|
||||
endif
|
||||
|
||||
|
||||
|
||||
SRCS_IN_OBJDIR = 1
|
||||
|
||||
ENABLE_CXX_EXCEPTIONS = 1
|
||||
|
@ -304,118 +262,3 @@ $(DEFFILE):
|
|||
@echo "NP_GetEntryPoints @1" >> $@
|
||||
@echo "NP_Initialize @2" >> $@
|
||||
@echo "NP_Shutdown @3" >> $@
|
||||
|
||||
ifdef MOZ_ACTIVEX_PLUGIN_LIVECONNECT
|
||||
./MozAxPlugin.class: ./MozAxPlugin.java
|
||||
$(SDK_JAVAC) -classpath $(SDK_CLASSPATH) MozAxPlugin.java
|
||||
|
||||
./_java/MozAxPlugin.h \
|
||||
./_java/MozAxPlugin.c: ./MozAxPlugin.class
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java MozAxPlugin
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java MozAxPlugin
|
||||
|
||||
./_java/java_lang_Object.h \
|
||||
./_java/java_lang_Object.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Object
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Object
|
||||
|
||||
./_java/java_lang_Error.h \
|
||||
./_java/java_lang_Error.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Error
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Error
|
||||
|
||||
./_java/java_lang_Throwable.h \
|
||||
./_java/java_lang_Throwable.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Throwable
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Throwable
|
||||
|
||||
./_java/java_lang_String.h \
|
||||
./_java/java_lang_String.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.String
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.String
|
||||
|
||||
./_java/java_lang_Boolean.h \
|
||||
./_java/java_lang_Boolean.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Boolean
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Boolean
|
||||
|
||||
./_java/java_lang_Number.h \
|
||||
./_java/java_lang_Number.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Number
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Number
|
||||
|
||||
./_java/java_lang_Integer.h \
|
||||
./_java/java_lang_Integer.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Integer
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Integer
|
||||
|
||||
./_java/java_lang_Short.h \
|
||||
./_java/java_lang_Short.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Short
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Short
|
||||
|
||||
./_java/java_lang_Long.h \
|
||||
./_java/java_lang_Long.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Long
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Long
|
||||
|
||||
./_java/java_lang_Double.h \
|
||||
./_java/java_lang_Double.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Double
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Double
|
||||
|
||||
./_java/java_lang_Float.h \
|
||||
./_java/java_lang_Float.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Float
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Float
|
||||
|
||||
./_java/java_lang_Byte.h \
|
||||
./_java/java_lang_Byte.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Byte
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Byte
|
||||
|
||||
./_java/java_lang_Character.h \
|
||||
./_java/java_lang_Character.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java java.lang.Character
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java java.lang.Character
|
||||
|
||||
./_java/netscape_plugin_Plugin.h \
|
||||
./_java/netscape_plugin_Plugin.c : $(SDK_CLASSES)
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -d _java netscape.plugin.Plugin
|
||||
$(SDK_JAVAH) -classpath $(SDK_CLASSPATH) -jri -stubs -d _java netscape.plugin.Plugin
|
||||
|
||||
javastubs.c : \
|
||||
./MozAxPlugin.class \
|
||||
./_java/MozAxPlugin.c \
|
||||
./_java/netscape_plugin_Plugin.c \
|
||||
./_java/java_lang_Object.c \
|
||||
./_java/java_lang_Throwable.c \
|
||||
./_java/java_lang_Error.c \
|
||||
./_java/java_lang_String.c \
|
||||
./_java/java_lang_Boolean.c \
|
||||
./_java/java_lang_Number.c \
|
||||
./_java/java_lang_Integer.c \
|
||||
./_java/java_lang_Long.c \
|
||||
./_java/java_lang_Double.c \
|
||||
./_java/java_lang_Float.c \
|
||||
./_java/java_lang_Character.c \
|
||||
$(NULL)
|
||||
|
||||
LiveConnect.cpp: StdAfx.h \
|
||||
./MozAxPlugin.class \
|
||||
./_java/MozAxPlugin.h \
|
||||
./_java/netscape_plugin_Plugin.h \
|
||||
./_java/java_lang_Object.h \
|
||||
./_java/java_lang_Throwable.h \
|
||||
./_java/java_lang_Error.h \
|
||||
./_java/java_lang_String.h \
|
||||
./_java/java_lang_Boolean.h \
|
||||
./_java/java_lang_Number.h \
|
||||
./_java/java_lang_Integer.h \
|
||||
./_java/java_lang_Long.h \
|
||||
./_java/java_lang_Double.h \
|
||||
./_java/java_lang_Float.h \
|
||||
./_java/java_lang_Character.h \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
/* NOTE: This is a C file to avoid some nasty typecasting issues that C++ has
|
||||
with the JDK generated code.
|
||||
*/
|
||||
|
||||
#define IMPLEMENT_MozAxPlugin
|
||||
#include "_java/MozAxPlugin.c"
|
||||
#include "_java/netscape_plugin_Plugin.c"
|
||||
#include "_java/java_lang_Throwable.c"
|
||||
#include "_java/java_lang_Error.c"
|
||||
#include "_java/java_lang_String.c"
|
||||
#include "_java/java_lang_Boolean.c"
|
||||
#include "_java/java_lang_Number.c"
|
||||
#include "_java/java_lang_Integer.c"
|
||||
#include "_java/java_lang_Long.c"
|
||||
//#include "_java/java_lang_Double.c"
|
||||
//#include "_java/java_lang_Float.c"
|
||||
#include "_java/java_lang_Character.c"
|
|
@ -76,9 +76,6 @@
|
|||
#include "nsIPluginInstancePeer2.h"
|
||||
#include "plstr.h"
|
||||
#include "nsILinkHandler.h"
|
||||
#ifdef OJI
|
||||
#include "nsIJVMPluginTagInfo.h"
|
||||
#endif
|
||||
#include "nsIEventListener.h"
|
||||
#include "nsIScrollableView.h"
|
||||
#include "nsIScrollPositionListener.h"
|
||||
|
@ -236,9 +233,6 @@ public:
|
|||
|
||||
class nsPluginInstanceOwner : public nsIPluginInstanceOwner,
|
||||
public nsIPluginTagInfo2,
|
||||
#ifdef OJI
|
||||
public nsIJVMPluginTagInfo,
|
||||
#endif
|
||||
public nsIEventListener,
|
||||
public nsITimerCallback,
|
||||
public nsIDOMMouseListener,
|
||||
|
@ -319,21 +313,6 @@ public:
|
|||
|
||||
NS_IMETHOD GetDOMElement(nsIDOMElement* *result);
|
||||
|
||||
#ifdef OJI
|
||||
//nsIJVMPluginTagInfo interface
|
||||
|
||||
NS_IMETHOD GetCode(const char* *result);
|
||||
|
||||
NS_IMETHOD GetCodeBase(const char* *result);
|
||||
|
||||
NS_IMETHOD GetArchive(const char* *result);
|
||||
|
||||
NS_IMETHOD GetName(const char* *result);
|
||||
|
||||
NS_IMETHOD GetMayScript(PRBool *result);
|
||||
|
||||
#endif /* OJI */
|
||||
|
||||
// nsIDOMMouseListener interfaces
|
||||
NS_IMETHOD MouseDown(nsIDOMEvent* aMouseEvent);
|
||||
NS_IMETHOD MouseUp(nsIDOMEvent* aMouseEvent);
|
||||
|
@ -2311,9 +2290,6 @@ NS_INTERFACE_MAP_BEGIN(nsPluginInstanceOwner)
|
|||
NS_INTERFACE_MAP_ENTRY(nsIPluginInstanceOwner)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIPluginTagInfo)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIPluginTagInfo2)
|
||||
#ifdef OJI
|
||||
NS_INTERFACE_MAP_ENTRY(nsIJVMPluginTagInfo)
|
||||
#endif
|
||||
NS_INTERFACE_MAP_ENTRY(nsIEventListener)
|
||||
NS_INTERFACE_MAP_ENTRY(nsITimerCallback)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIDOMMouseListener)
|
||||
|
@ -2939,69 +2915,6 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetUniqueID(PRUint32 *result)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
#ifdef OJI
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetCode(const char* *result)
|
||||
{
|
||||
nsresult rv;
|
||||
nsPluginTagType tagType;
|
||||
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
|
||||
|
||||
rv = NS_ERROR_FAILURE;
|
||||
if (nsPluginTagType_Object != tagType)
|
||||
rv = GetAttribute("CODE", result);
|
||||
if (NS_FAILED(rv))
|
||||
rv = GetParameter("CODE", result);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetCodeBase(const char* *result)
|
||||
{
|
||||
nsresult rv;
|
||||
if (NS_FAILED(rv = GetAttribute("CODEBASE", result)))
|
||||
rv = GetParameter("CODEBASE", result);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetArchive(const char* *result)
|
||||
{
|
||||
nsresult rv;
|
||||
if (NS_FAILED(rv = GetAttribute("ARCHIVE", result)))
|
||||
rv = GetParameter("ARCHIVE", result);
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetName(const char* *result)
|
||||
{
|
||||
nsresult rv;
|
||||
nsPluginTagType tagType;
|
||||
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
|
||||
|
||||
rv = NS_ERROR_FAILURE;
|
||||
if (nsPluginTagType_Object != tagType)
|
||||
rv = GetAttribute("NAME", result);
|
||||
if (NS_FAILED(rv))
|
||||
rv = GetParameter("NAME", result);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPluginInstanceOwner::GetMayScript(PRBool *result)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(result);
|
||||
nsPluginTagType tagType;
|
||||
NS_ENSURE_SUCCESS(GetTagType(&tagType), NS_ERROR_FAILURE);
|
||||
|
||||
const char* unused;
|
||||
if (nsPluginTagType_Object == tagType)
|
||||
*result = NS_SUCCEEDED(GetParameter("MAYSCRIPT", &unused));
|
||||
else
|
||||
*result = NS_SUCCEEDED(GetAttribute("MAYSCRIPT", &unused));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
#endif /* OJI */
|
||||
|
||||
// Cache the attributes and/or parameters of our tag into a single set
|
||||
// of arrays to be compatible with 4.x. The attributes go first,
|
||||
// followed by a PARAM/null and then any PARAM tags. Also, hold the
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = oji
|
||||
|
||||
DIRS = public
|
||||
|
||||
ifdef MOZ_OJI
|
||||
DIRS += src
|
||||
endif
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = oji
|
||||
GRE_MODULE = 1
|
||||
|
||||
XPIDLSRCS = \
|
||||
nsIJVMManager.idl \
|
||||
nsIJVMPluginInstance.idl \
|
||||
nsIJVMConfigManager.idl \
|
||||
$(NULL)
|
||||
|
||||
EXPORTS = \
|
||||
nsjvm.h \
|
||||
nsIJRIPlugin.h \
|
||||
nsIJVMConsole.h \
|
||||
nsIJVMPlugin.h \
|
||||
nsIJVMPluginTagInfo.h \
|
||||
nsIJVMPrefsWindow.h \
|
||||
nsIJVMWindow.h \
|
||||
nsISymantecDebugManager.h \
|
||||
nsISymantecDebugger.h \
|
||||
nsISecureEnv.h \
|
||||
ProxyJNI.h \
|
||||
nsIJVMThreadManager.h \
|
||||
nsILiveConnectManager.h \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
ProxyJNI.h
|
||||
*/
|
||||
|
||||
#ifndef PROXY_JNI_H
|
||||
#define PROXY_JNI_H
|
||||
|
||||
#ifndef JNI_H
|
||||
#include <jni.h>
|
||||
#endif
|
||||
|
||||
class nsIJVMPlugin;
|
||||
class nsISecureEnv;
|
||||
class nsISecurityContext;
|
||||
/**
|
||||
* Creates a proxy JNIEnv using the given JVM plugin, and optional native JNIEnv*.
|
||||
*/
|
||||
JNIEnv* CreateProxyJNI(nsIJVMPlugin* jvmPlugin, nsISecureEnv* secureEnv = NULL);
|
||||
|
||||
/**
|
||||
* Deletes the proxy JNIEnv. Releases the connection
|
||||
* to the underlying JVM.
|
||||
*/
|
||||
void DeleteProxyJNI(JNIEnv* proxyEnv);
|
||||
|
||||
|
||||
/**
|
||||
* Returns the secure env associated with the given proxy env.
|
||||
*/
|
||||
nsISecureEnv* GetSecureEnv(JNIEnv* proxyEnv);
|
||||
|
||||
/**
|
||||
* Sets SecurityCotext for proxy env
|
||||
*/
|
||||
PR_EXTERN(void) SetSecurityContext(JNIEnv* proxyEnv, nsISecurityContext *context);
|
||||
|
||||
/**
|
||||
* Gets current SecurityContext for proxy env
|
||||
*/
|
||||
PR_EXTERN(nsresult) GetSecurityContext(JNIEnv* proxyEnv, nsISecurityContext **context);
|
||||
#endif /* PROXY_JNI_H */
|
||||
|
|
@ -1,85 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJRIPlugin_h___
|
||||
#define nsIJRIPlugin_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "jri.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// JRI Plugin Class Interface
|
||||
// This interface is provided for backward compatibility for the Netscape JVM.
|
||||
|
||||
class nsIJRIPlugin : public nsISupports {
|
||||
public:
|
||||
|
||||
// QueryInterface on nsIJVMPlugin to get this.
|
||||
|
||||
// Find or create a JRIEnv for the current thread.
|
||||
// Returns NULL if an error occurs.
|
||||
NS_IMETHOD_(nsrefcnt)
|
||||
GetJRIEnv(JRIEnv* *result) = 0;
|
||||
|
||||
// This method must be called when the caller is done using the JRIEnv.
|
||||
// This decrements a refcount associated with it may free it.
|
||||
NS_IMETHOD_(nsrefcnt)
|
||||
ReleaseJRIEnv(JRIEnv* env) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IJRIPLUGIN_IID \
|
||||
{ /* bfe2d7d0-0164-11d2-815b-006008119d7a */ \
|
||||
0xbfe2d7d0, \
|
||||
0x0164, \
|
||||
0x11d2, \
|
||||
{0x81, 0x5b, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJRIPlugin_h___ */
|
|
@ -1,80 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pete Zha <pete.zha@sun.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsIArray.idl"
|
||||
#include "nsIFile.idl"
|
||||
|
||||
%{C++
|
||||
#define NS_JVMCONFIGMANAGER_CID \
|
||||
{ /* 4a68cee9-6f07-4950-b441-a1ce6a082e2f */ \
|
||||
0x4a68cee9, \
|
||||
0x6f07, \
|
||||
0x4950, \
|
||||
{0xb4, 0x41, 0xa1, 0xce, 0x6a, 0x08, 0x2e, 0x2f} \
|
||||
}
|
||||
%}
|
||||
/**
|
||||
* This interface contains information for the Java installation.
|
||||
*/
|
||||
[scriptable, uuid(3e333e20-b190-42d8-b993-d5fa435e46c4)]
|
||||
interface nsIJVMConfig : nsISupports {
|
||||
readonly attribute AString version;
|
||||
readonly attribute AString type;
|
||||
readonly attribute AString OS;
|
||||
readonly attribute AString arch;
|
||||
readonly attribute nsIFile path;
|
||||
readonly attribute nsIFile mozillaPluginPath;
|
||||
readonly attribute AString description;
|
||||
};
|
||||
|
||||
/**
|
||||
* This interface is a manager that can get information about Java
|
||||
* installations.
|
||||
*/
|
||||
[scriptable, uuid(ca29fff1-a677-493c-9d80-3dc60432212b)]
|
||||
interface nsIJVMConfigManager : nsISupports {
|
||||
/**
|
||||
* This function returns a list of existing Java installations.
|
||||
*/
|
||||
nsIArray getJVMConfigList();
|
||||
|
||||
/**
|
||||
* This function tells the browser to use a specific Java installation.
|
||||
*/
|
||||
void setCurrentJVMConfig(in nsIJVMConfig jvmConfig);
|
||||
};
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJVMConsole_h___
|
||||
#define nsIJVMConsole_h___
|
||||
|
||||
#include "nsIJVMWindow.h"
|
||||
|
||||
#define NS_IJVMCONSOLE_IID \
|
||||
{ /* fefaf860-6220-11d2-8164-006008119d7a */ \
|
||||
0xfefaf860, \
|
||||
0x6220, \
|
||||
0x11d2, \
|
||||
{0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// JVM Console Interface
|
||||
// This interface defines the API the browser needs to show and hide the JVM's
|
||||
// Java console, and to send text to it.
|
||||
|
||||
class nsIJVMConsole : public nsIJVMWindow {
|
||||
public:
|
||||
NS_IMETHOD
|
||||
Show(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
Hide(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
IsVisible(PRBool *result) = 0;
|
||||
|
||||
// Prints a message to the Java console. The encodingName specifies the
|
||||
// encoding of the message, and if NULL, specifies the default platform
|
||||
// encoding.
|
||||
NS_IMETHOD
|
||||
Print(const char* msg, const char* encodingName = NULL) = 0;
|
||||
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IJVMCONSOLE_IID)
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIJVMConsole, NS_IJVMCONSOLE_IID)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJVMConsole_h___ */
|
|
@ -1,122 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsISupports.idl"
|
||||
|
||||
%{C++
|
||||
#ifndef JNI_H
|
||||
#include "jni.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
Java VM Plugin Manager
|
||||
This interface defines additional entry points that are available
|
||||
to JVM plugins for browsers that support JVM plugins.
|
||||
*/
|
||||
/*
|
||||
#define NS_IJVMMANAGER_IID \
|
||||
{ / * a1e5ed50-aa4a-11d1-85b2-00805f0e4dfe * / \
|
||||
0xa1e5ed50, \
|
||||
0xaa4a, \
|
||||
0x11d1, \
|
||||
{0x85, 0xb2, 0x00, 0x80, 0x5f, 0x0e, 0x4d, 0xfe} \
|
||||
}
|
||||
*/
|
||||
|
||||
#define NS_JVMMANAGER_CID \
|
||||
{ /* 38e7ef10-58df-11d2-8164-006008119d7a */ \
|
||||
0x38e7ef10, \
|
||||
0x58df, \
|
||||
0x11d2, \
|
||||
{0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
%}
|
||||
|
||||
interface nsIJVMPlugin;
|
||||
interface nsISecureEnv;
|
||||
interface nsIPrincipal;
|
||||
native JNIEnv(JNIEnv *);
|
||||
|
||||
[scriptable, uuid(a1e5ed50-aa4a-11d1-85b2-00805f0e4dfe)]
|
||||
interface nsIJVMManager : nsISupports {
|
||||
|
||||
%{C++
|
||||
NS_DEFINE_STATIC_CID_ACCESSOR(NS_JVMMANAGER_CID)
|
||||
%}
|
||||
|
||||
/**
|
||||
* Creates a proxy JNI with an optional secure environment (which can be NULL).
|
||||
* There is a one-to-one correspondence between proxy JNIs and threads, so
|
||||
* calling this method multiple times from the same thread will return
|
||||
* the same proxy JNI.
|
||||
*/
|
||||
[noscript] void createProxyJNI(in nsISecureEnv secureEnv, out JNIEnv outProxyEnv);
|
||||
|
||||
/**
|
||||
* Returns the proxy JNI associated with the current thread, or NULL if no
|
||||
* such association exists.
|
||||
*/
|
||||
[noscript] void getProxyJNI(out JNIEnv outProxyEnv);
|
||||
|
||||
/**
|
||||
* Called from Java Console menu item.
|
||||
*/
|
||||
|
||||
void showJavaConsole();
|
||||
|
||||
/**
|
||||
* isAllPermissionGranted [Deprecated Sep-10-2000]
|
||||
*/
|
||||
|
||||
boolean isAllPermissionGranted(in string lastFingerprint,in string lastCommonName,
|
||||
in string rootFingerprint,in string rootCommonName);
|
||||
|
||||
/**
|
||||
* isAppletTrusted
|
||||
*/
|
||||
|
||||
nsIPrincipal isAppletTrusted(in string aRSABuf, in PRUint32 aRSABufLen,
|
||||
in string aPlaintext, in PRUint32 aPlaintextLen,
|
||||
out boolean isTrusted);
|
||||
|
||||
/**
|
||||
* The JavaEnabled variable to see if Java is Enabled or not
|
||||
*/
|
||||
|
||||
readonly attribute boolean JavaEnabled;
|
||||
};
|
|
@ -1,130 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJVMPlugin_h___
|
||||
#define nsIJVMPlugin_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "jni.h"
|
||||
|
||||
class nsISecureEnv;
|
||||
|
||||
/**
|
||||
* This MIME type is what should be used to signify a Java VM plugin.
|
||||
*/
|
||||
#define NS_JVM_MIME_TYPE "application/x-java-vm" // XXX "application/java" ?
|
||||
|
||||
|
||||
#define NS_IJVMPLUGIN_IID \
|
||||
{ /* da6f3bc0-a1bc-11d1-85b1-00805f0e4dfe */ \
|
||||
0xda6f3bc0, \
|
||||
0xa1bc, \
|
||||
0x11d1, \
|
||||
{0x85, 0xb1, 0x00, 0x80, 0x5f, 0x0e, 0x4d, 0xfe} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Java VM Plugin Interface
|
||||
// This interface defines additional entry points that a plugin developer needs
|
||||
// to implement in order to implement a Java virtual machine plugin.
|
||||
|
||||
class nsIJVMPlugin : public nsISupports {
|
||||
public:
|
||||
// Causes the JVM to append a new directory to its classpath.
|
||||
// If the JVM doesn't support this operation, an error is returned.
|
||||
NS_IMETHOD
|
||||
AddToClassPath(const char* dirPath) = 0;
|
||||
|
||||
// Causes the JVM to remove a directory from its classpath.
|
||||
// If the JVM doesn't support this operation, an error is returned.
|
||||
NS_IMETHOD
|
||||
RemoveFromClassPath(const char* dirPath) = 0;
|
||||
|
||||
// Returns the current classpath in use by the JVM.
|
||||
NS_IMETHOD
|
||||
GetClassPath(const char* *result) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
#if PR_BYTES_PER_LONG == 8
|
||||
GetJavaWrapper(JNIEnv* jenv, jlong obj, jobject *jobj) = 0;
|
||||
#else
|
||||
GetJavaWrapper(JNIEnv* jenv, jint obj, jobject *jobj) = 0;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This creates a new secure communication channel with Java. The second parameter,
|
||||
* nativeEnv, if non-NULL, will be the actual thread for Java communication.
|
||||
* Otherwise, a new thread should be created.
|
||||
* @param proxyEnv the env to be used by all clients on the browser side
|
||||
* @return outSecureEnv the secure environment used by the proxyEnv
|
||||
*/
|
||||
NS_IMETHOD
|
||||
CreateSecureEnv(JNIEnv* proxyEnv, nsISecureEnv* *outSecureEnv) = 0;
|
||||
|
||||
/**
|
||||
* Gives time to the JVM from the main event loop of the browser. This is
|
||||
* necessary when there aren't any plugin instances around, but Java threads exist.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SpendTime(PRUint32 timeMillis) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
#if PR_BYTES_PER_LONG == 8 || PR_BYTES_PER_WORD == 8
|
||||
UnwrapJavaWrapper(JNIEnv* jenv, jobject jobj, jlong* obj) = 0;
|
||||
#else
|
||||
UnwrapJavaWrapper(JNIEnv* jenv, jobject jobj, jint* obj) = 0;
|
||||
#endif
|
||||
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IJVMPLUGIN_IID)
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIJVMPlugin, NS_IJVMPLUGIN_IID)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJVMPlugin_h___ */
|
|
@ -1,64 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "nsISupports.idl"
|
||||
%{C++
|
||||
#include "jni.h"
|
||||
%}
|
||||
|
||||
native jobject(jobject);
|
||||
native nChar(const char **);
|
||||
|
||||
[scriptable, uuid(a0c057d0-01c1-11d2-815b-006008119d7a)]
|
||||
interface nsIJVMPluginInstance : nsISupports {
|
||||
|
||||
// This method is called when LiveConnect wants to find the Java object
|
||||
// associated with this plugin instance, e.g. the Applet or JavaBean object.
|
||||
[noscript] void GetJavaObject(out jobject result);
|
||||
|
||||
[noscript] void GetText(in nChar result);
|
||||
};
|
|
@ -1,91 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJVMPluginTagInfo_h___
|
||||
#define nsIJVMPluginTagInfo_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Java VM Plugin Instance Peer Interface
|
||||
// This interface provides additional hooks into the plugin manager that allow
|
||||
// a plugin to implement the plugin manager's Java virtual machine.
|
||||
|
||||
#define NS_IJVMPLUGINTAGINFO_IID \
|
||||
{ /* 27b42df0-a1bd-11d1-85b1-00805f0e4dfe */ \
|
||||
0x27b42df0, \
|
||||
0xa1bd, \
|
||||
0x11d1, \
|
||||
{0x85, 0xb1, 0x00, 0x80, 0x5f, 0x0e, 0x4d, 0xfe} \
|
||||
}
|
||||
|
||||
class nsIJVMPluginTagInfo : public nsISupports {
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IJVMPLUGINTAGINFO_IID)
|
||||
|
||||
NS_IMETHOD
|
||||
GetCode(const char* *result) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
GetCodeBase(const char* *result) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
GetArchive(const char* *result) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
GetName(const char* *result) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
GetMayScript(PRBool *result) = 0;
|
||||
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIJVMPluginTagInfo, NS_IJVMPLUGINTAGINFO_IID)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJVMPluginTagInfo_h___ */
|
|
@ -1,91 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJVMPrefsWindow_h___
|
||||
#define nsIJVMPrefsWindow_h___
|
||||
|
||||
#include "nsIJVMWindow.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// JVM Preferences Window Interface
|
||||
// This interface defines the API the browser needs to show and hide the JVM's
|
||||
// preference Window. The JVM's preference Window is used by the plugin to display
|
||||
// Java VM-specific preferences.
|
||||
|
||||
class nsIJVMPrefsWindow : public nsIJVMWindow {
|
||||
public:
|
||||
|
||||
NS_IMETHOD
|
||||
Show(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
Hide(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
IsVisible(PRBool *result) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IJVMPREFSWINDOW_IID \
|
||||
{ /* 20330d70-4ec9-11d2-8164-006008119d7a */ \
|
||||
0x20330d70, \
|
||||
0x4ec9, \
|
||||
0x11d2, \
|
||||
{0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
#define NS_JVMPREFSWINDOW_CID \
|
||||
{ /* e9c1ef10-6304-11d2-8164-006008119d7a */ \
|
||||
0xe9c1ef10, \
|
||||
0x6304, \
|
||||
0x11d2, \
|
||||
{0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJVMPrefsWindow_h___ */
|
|
@ -1,136 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* vim:set ts=4 sw=4 sts=4 ci et: */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsIJVMThreadManager_h___
|
||||
#define nsIJVMThreadManager_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIRunnable.h"
|
||||
#include "nspr.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Thread Manager
|
||||
// This interface provides thread primitives.
|
||||
|
||||
#define NS_IJVMTHREADMANAGER_IID \
|
||||
{ /* 97bb54c0-6846-11d2-801f-00805f71101c */ \
|
||||
0x97bb54c0, \
|
||||
0x6846, \
|
||||
0x11d2, \
|
||||
{0x80, 0x1f, 0x00, 0x80, 0x5f, 0x71, 0x10, 0x1c} \
|
||||
}
|
||||
|
||||
class nsIRunnable;
|
||||
|
||||
class nsIJVMThreadManager : public nsISupports {
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_IJVMTHREADMANAGER_IID)
|
||||
|
||||
/**
|
||||
* Returns a unique identifier for the "current" system thread.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetCurrentThread(PRThread* *threadID) = 0;
|
||||
|
||||
/**
|
||||
* Pauses the current thread for the specified number of milliseconds.
|
||||
* If milli is zero, then merely yields the CPU if another thread of
|
||||
* greater or equal priority.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Sleep(PRUint32 milli = 0) = 0;
|
||||
|
||||
/**
|
||||
* Creates a unique monitor for the specified address, and makes the
|
||||
* current system thread the owner of the monitor.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
EnterMonitor(void* address) = 0;
|
||||
|
||||
/**
|
||||
* Exits the monitor associated with the address.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
ExitMonitor(void* address) = 0;
|
||||
|
||||
/**
|
||||
* Waits on the monitor associated with the address (must be entered already).
|
||||
* If milli is 0, wait indefinitely.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Wait(void* address, PRUint32 milli = 0) = 0;
|
||||
|
||||
/**
|
||||
* Notifies a single thread waiting on the monitor associated with the address (must be entered already).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Notify(void* address) = 0;
|
||||
|
||||
/**
|
||||
* Notifies all threads waiting on the monitor associated with the address (must be entered already).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
NotifyAll(void* address) = 0;
|
||||
|
||||
/**
|
||||
* Creates a new thread, calling the specified runnable's Run method (a la Java).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
CreateThread(PRThread **thread, nsIRunnable* runnable) = 0;
|
||||
|
||||
/**
|
||||
* Posts an event to specified thread, calling the runnable from that thread.
|
||||
* @param threadID thread to call runnable from
|
||||
* @param runnable object to invoke from thread
|
||||
* @param async if true, won't block current thread waiting for result
|
||||
*/
|
||||
NS_IMETHOD
|
||||
PostEvent(PRThread* thread, nsIRunnable* runnable, PRBool async) = 0;
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsIJVMThreadManager, NS_IJVMTHREADMANAGER_IID)
|
||||
|
||||
#ifndef NS_OJI_IMPL
|
||||
// For backwards compatibility:
|
||||
typedef nsIJVMThreadManager nsIThreadManager;
|
||||
#define NS_ITHREADMANAGER_IID NS_IJVMTHREADMANAGER_IID
|
||||
#endif
|
||||
|
||||
#endif /* nsIJVMThreadManager_h___ */
|
|
@ -1,86 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsIJVMWindow_h___
|
||||
#define nsIJVMWindow_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// JVM Preferences Panel Interface
|
||||
// This interface defines the API the browser needs to show and hide the JVM's
|
||||
// preference panel. The JVM's preference panel is used by the plugin to display
|
||||
// Java VM-specific preferences.
|
||||
|
||||
class nsIJVMWindow : public nsISupports {
|
||||
public:
|
||||
|
||||
// QueryInterface on nsIJVMPlugin to get this.
|
||||
|
||||
NS_IMETHOD
|
||||
Show(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
Hide(void) = 0;
|
||||
|
||||
NS_IMETHOD
|
||||
IsVisible(PRBool *result) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IJVMWINDOW_IID \
|
||||
{ /* d981b540-6220-11d2-8164-006008119d7a */ \
|
||||
0xd981b540, \
|
||||
0x6220, \
|
||||
0x11d2, \
|
||||
{0x81, 0x64, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsIJVMWindow_h___ */
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/**
|
||||
* nsILiveConnectManager provides the necessary interfaces for initializing LiveConnect
|
||||
* and provides services to the DOM.
|
||||
*/
|
||||
|
||||
#ifndef nsILiveConnectManager_h___
|
||||
#define nsILiveConnectManager_h___
|
||||
|
||||
#ifndef nsISupports_h___
|
||||
#include "nsISupports.h"
|
||||
#endif
|
||||
#ifndef JNI_H
|
||||
#include "jni.h"
|
||||
#endif
|
||||
|
||||
// {d20c8081-cbcb-11d2-a5a0-e884aed9c9fc}
|
||||
#define NS_ILIVECONNECTMANAGER_IID \
|
||||
{ 0xd20c8081, 0xcbcb, 0x11d2, { 0xa5, 0xa0, 0xe8, 0x84, 0xae, 0xd9, 0xc9, 0xfc } }
|
||||
|
||||
// {d20c8083-cbcb-11d2-a5a0-e884aed9c9fc}
|
||||
#define NS_LIVECONNECTMANAGER_CID \
|
||||
{ 0xd20c8083, 0xcbcb, 0x11d2, { 0xa5, 0xa0, 0xe8, 0x84, 0xae, 0xd9, 0xc9, 0xfc } }
|
||||
|
||||
struct JSRuntime;
|
||||
struct JSContext;
|
||||
struct JSObject;
|
||||
|
||||
class nsILiveConnectManager : public nsISupports {
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ILIVECONNECTMANAGER_IID)
|
||||
|
||||
/**
|
||||
* Attempts to start LiveConnect using the specified JSRuntime.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted) = 0;
|
||||
|
||||
/**
|
||||
* Attempts to stop LiveConnect using the specified JSRuntime.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown) = 0;
|
||||
|
||||
/**
|
||||
* Indicates whether LiveConnect can be used.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
IsLiveConnectEnabled(PRBool& outEnabled) = 0;
|
||||
|
||||
/**
|
||||
* Initializes a JSContext with the proper LiveConnect support classes.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
InitLiveConnectClasses(JSContext* context, JSObject* globalObject) = 0;
|
||||
|
||||
/**
|
||||
* Creates a JavaScript wrapper for a Java object.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject) = 0;
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsILiveConnectManager,
|
||||
NS_ILIVECONNECTMANAGER_IID)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsILiveConnectManager_h___ */
|
|
@ -1,365 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsISecureEnv_h___
|
||||
#define nsISecureEnv_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISecurityContext.h"
|
||||
#include "jni.h"
|
||||
|
||||
enum jni_type
|
||||
{
|
||||
jobject_type = 0,
|
||||
jboolean_type,
|
||||
jbyte_type,
|
||||
jchar_type,
|
||||
jshort_type,
|
||||
jint_type,
|
||||
jlong_type,
|
||||
jfloat_type,
|
||||
jdouble_type,
|
||||
jvoid_type
|
||||
};
|
||||
|
||||
#define NS_ISECUREENV_IID \
|
||||
{ /* ca9148d0-598a-11d2-a1d4-00805f8f694d */ \
|
||||
0xca9148d0, \
|
||||
0x598a, \
|
||||
0x11d2, \
|
||||
{0xa1, 0xd4, 0x00, 0x80, 0x5f, 0x8f, 0x69, 0x4d } \
|
||||
}
|
||||
|
||||
class nsISecureEnv : public nsISupports {
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISECUREENV_IID)
|
||||
|
||||
/**
|
||||
* Create new Java object in LiveConnect.
|
||||
*
|
||||
* @param clazz -- Java Class object.
|
||||
* @param methodID -- Method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return new Java object.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD NewObject(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jobject* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return result of invocation.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD CallMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke non-virtual method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param clazz -- Class object
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return result of invocation.
|
||||
*/
|
||||
NS_IMETHOD CallNonvirtualMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Get a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param fieldID -- field id
|
||||
* @param result -- return field value
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD GetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Set a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param fieldID -- field id
|
||||
* @param val -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke static method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return result of invocation.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD CallStaticMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Get a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param fieldID -- field id
|
||||
* @param result -- return field value
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD GetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Set a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param fieldID -- field id
|
||||
* @param val -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
|
||||
NS_IMETHOD GetVersion(/*[out]*/ jint* version) = 0;
|
||||
|
||||
NS_IMETHOD DefineClass(/*[in]*/ const char* name,
|
||||
/*[in]*/ jobject loader,
|
||||
/*[in]*/ const jbyte *buf,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
|
||||
NS_IMETHOD FindClass(/*[in]*/ const char* name,
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
|
||||
NS_IMETHOD GetSuperclass(/*[in]*/ jclass sub,
|
||||
/*[out]*/ jclass* super) = 0;
|
||||
|
||||
NS_IMETHOD IsAssignableFrom(/*[in]*/ jclass sub,
|
||||
/*[in]*/ jclass super,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD Throw(/*[in]*/ jthrowable obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD ThrowNew(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *msg,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionOccurred(/*[out]*/ jthrowable* result) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionDescribe(void) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionClear(void) = 0;
|
||||
|
||||
NS_IMETHOD FatalError(/*[in]*/ const char* msg) = 0;
|
||||
|
||||
NS_IMETHOD NewGlobalRef(/*[in]*/ jobject lobj,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD DeleteGlobalRef(/*[in]*/ jobject gref) = 0;
|
||||
|
||||
NS_IMETHOD DeleteLocalRef(/*[in]*/ jobject obj) = 0;
|
||||
|
||||
NS_IMETHOD IsSameObject(/*[in]*/ jobject obj1,
|
||||
/*[in]*/ jobject obj2,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD AllocObject(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD GetObjectClass(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jclass* result) = 0;
|
||||
|
||||
NS_IMETHOD IsInstanceOf(/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD GetMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetStaticMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetStaticFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
|
||||
NS_IMETHOD NewString(/*[in]*/ const jchar* unicode,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const jchar** result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const jchar *chars) = 0;
|
||||
|
||||
NS_IMETHOD NewStringUTF(/*[in]*/ const char *utf,
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringUTFLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const char** result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const char *chars) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayLength(/*[in]*/ jarray array,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD NewObjectArray(/*[in]*/ jsize len,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jobject init,
|
||||
/*[out]*/ jobjectArray* result) = 0;
|
||||
|
||||
NS_IMETHOD GetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD SetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[in]*/ jobject val) = 0;
|
||||
|
||||
NS_IMETHOD NewArray(/*[in]*/ jni_type element_type,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jarray* result) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ void* result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ void *elems,
|
||||
/*[in]*/ jint mode) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ void* buf) = 0;
|
||||
|
||||
NS_IMETHOD SetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[in]*/ void* buf) = 0;
|
||||
|
||||
NS_IMETHOD RegisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const JNINativeMethod *methods,
|
||||
/*[in]*/ jint nMethods,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD UnregisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD MonitorEnter(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD MonitorExit(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD GetJavaVM(/*[in]*/ JavaVM **vm,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsISecureEnv, NS_ISECUREENV_IID)
|
||||
|
||||
#endif // nsISecureEnv_h___
|
|
@ -1,204 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsISecureJNI_h___
|
||||
#define nsISecureJNI_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISecurityContext.h"
|
||||
#include "jni.h"
|
||||
|
||||
class nsISecureJNI : public nsISupports {
|
||||
public:
|
||||
|
||||
/**
|
||||
* Create new Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param clazz -- Java Class object.
|
||||
* @param name -- constructor name.
|
||||
* @param sig -- constructor signature.
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return new Java object.
|
||||
*/
|
||||
NS_IMETHOD NewObject(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
/**
|
||||
* Invoke method on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- method name.
|
||||
* @param sig -- method signature.
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return result of invocation.
|
||||
*/
|
||||
NS_IMETHOD CallMethod(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
/**
|
||||
* Invoke non-virtual method on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- method name.
|
||||
* @param sig -- method signature.
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return result of invocation.
|
||||
*/
|
||||
NS_IMETHOD CallNonvirtualMethod(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
/**
|
||||
* Get a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- field name.
|
||||
* @param sig -- field signature
|
||||
* @param ctx -- security context
|
||||
* @param result -- return field value
|
||||
*/
|
||||
NS_IMETHOD GetField(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
/**
|
||||
* Set a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- field name.
|
||||
* @param sig -- field signature
|
||||
* @param result -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetField(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx) = 0;
|
||||
|
||||
/**
|
||||
* Invoke static method on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- method name.
|
||||
* @param sig -- method signature.
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return result of invocation.
|
||||
*/
|
||||
NS_IMETHOD CallStaticMethod(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
/**
|
||||
* Get a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- field name.
|
||||
* @param sig -- field signature
|
||||
* @param ctx -- security context
|
||||
* @param result -- return field value
|
||||
*/
|
||||
NS_IMETHOD GetStaticField(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ nsISecurityContext* ctx,
|
||||
/*[out]*/ jvalue* result) = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Set a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param env -- JNIEnv pointer.
|
||||
* @param obj -- Java object.
|
||||
* @param name -- field name.
|
||||
* @param sig -- field signature
|
||||
* @param result -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetStaticField(/*[in]*/ JNIEnv *env,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *name,
|
||||
/*[in]*/ const char *sig,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx) = 0;
|
||||
};
|
||||
|
||||
#define NS_ISECUREJNI_IID \
|
||||
{ /* {7C968050-4C4B-11d2-A1CB-00805F8F694D} */ \
|
||||
0x7c968050, \
|
||||
0x4c4b, \
|
||||
0x11d2, \
|
||||
{ 0xa1, 0xcb, 0x0, 0x80, 0x5f, 0x8f, 0x69, 0x4d } \
|
||||
};
|
||||
|
||||
#endif // nsISecureJNI_h___
|
|
@ -1,362 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsISecureJNI2_h___
|
||||
#define nsISecureJNI2_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
#include "nsIFactory.h"
|
||||
#include "nsISecurityContext.h"
|
||||
#include "jni.h"
|
||||
|
||||
enum jni_type
|
||||
{
|
||||
jobject_type = 0,
|
||||
jboolean_type,
|
||||
jbyte_type,
|
||||
jchar_type,
|
||||
jshort_type,
|
||||
jint_type,
|
||||
jlong_type,
|
||||
jfloat_type,
|
||||
jdouble_type,
|
||||
jvoid_type
|
||||
};
|
||||
|
||||
class nsISecureJNI2 : public nsISupports {
|
||||
public:
|
||||
|
||||
/**
|
||||
* Create new Java object in LiveConnect.
|
||||
*
|
||||
* @param clazz -- Java Class object.
|
||||
* @param methodID -- Method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return new Java object.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD NewObject(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jobject* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return result of invocation.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD CallMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke non-virtual method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param clazz -- Class object
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param ctx -- security context
|
||||
* @param result -- return result of invocation.
|
||||
*/
|
||||
NS_IMETHOD CallNonvirtualMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Get a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param fieldID -- field id
|
||||
* @param result -- return field value
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD GetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Set a field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param obj -- Java object.
|
||||
* @param fieldID -- field id
|
||||
* @param val -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Invoke static method on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param methodID -- method id
|
||||
* @param args -- arguments for invoking the constructor.
|
||||
* @param result -- return result of invocation.
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD CallStaticMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
/**
|
||||
* Get a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param fieldID -- field id
|
||||
* @param result -- return field value
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD GetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
|
||||
/**
|
||||
* Set a static field on Java object in LiveConnect.
|
||||
*
|
||||
* @param type -- Return type
|
||||
* @param clazz -- Class object.
|
||||
* @param fieldID -- field id
|
||||
* @param val -- field value to set
|
||||
* @param ctx -- security context
|
||||
*/
|
||||
NS_IMETHOD SetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
|
||||
|
||||
NS_IMETHOD GetVersion(/*[out]*/ jint* version) = 0;
|
||||
|
||||
NS_IMETHOD DefineClass(/*[in]*/ const char* name,
|
||||
/*[in]*/ jobject loader,
|
||||
/*[in]*/ const jbyte *buf,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
|
||||
NS_IMETHOD FindClass(/*[in]*/ const char* name,
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
|
||||
NS_IMETHOD GetSuperclass(/*[in]*/ jclass sub,
|
||||
/*[out]*/ jclass* super) = 0;
|
||||
|
||||
NS_IMETHOD IsAssignableFrom(/*[in]*/ jclass sub,
|
||||
/*[in]*/ jclass super,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD Throw(/*[in]*/ jthrowable obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD ThrowNew(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *msg,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionOccurred(/*[out]*/ jthrowable* result) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionDescribe(void) = 0;
|
||||
|
||||
NS_IMETHOD ExceptionClear(void) = 0;
|
||||
|
||||
NS_IMETHOD FatalError(/*[in]*/ const char* msg) = 0;
|
||||
|
||||
NS_IMETHOD NewGlobalRef(/*[in]*/ jobject lobj,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD DeleteGlobalRef(/*[in]*/ jobject gref) = 0;
|
||||
|
||||
NS_IMETHOD DeleteLocalRef(/*[in]*/ jobject obj) = 0;
|
||||
|
||||
NS_IMETHOD IsSameObject(/*[in]*/ jobject obj1,
|
||||
/*[in]*/ jobject obj2,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD AllocObject(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD GetObjectClass(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jclass* result) = 0;
|
||||
|
||||
NS_IMETHOD IsInstanceOf(/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
|
||||
NS_IMETHOD GetMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetStaticMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
|
||||
NS_IMETHOD GetStaticFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
|
||||
NS_IMETHOD NewString(/*[in]*/ const jchar* unicode,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const jchar** result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const jchar *chars) = 0;
|
||||
|
||||
NS_IMETHOD NewStringUTF(/*[in]*/ const char *utf,
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringUTFLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD GetStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const char** result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const char *chars) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayLength(/*[in]*/ jarray array,
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
|
||||
NS_IMETHOD NewObjectArray(/*[in]*/ jsize len,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jobject init,
|
||||
/*[out]*/ jobjectArray* result) = 0;
|
||||
|
||||
NS_IMETHOD GetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
|
||||
NS_IMETHOD SetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[in]*/ jobject val) = 0;
|
||||
|
||||
NS_IMETHOD NewArray(/*[in]*/ jni_type element_type,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jarray* result) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ void* result) = 0;
|
||||
|
||||
NS_IMETHOD ReleaseArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ void *elems,
|
||||
/*[in]*/ jint mode) = 0;
|
||||
|
||||
NS_IMETHOD GetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ void* buf) = 0;
|
||||
|
||||
NS_IMETHOD SetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[in]*/ void* buf) = 0;
|
||||
|
||||
NS_IMETHOD RegisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const JNINativeMethod *methods,
|
||||
/*[in]*/ jint nMethods,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD UnregisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD MonitorEnter(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD MonitorExit(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
|
||||
NS_IMETHOD GetJavaVM(/*[in]*/ JavaVM **vm,
|
||||
/*[out]*/ jint* result) = 0;
|
||||
};
|
||||
|
||||
#define NS_ISECUREJNI2_IID \
|
||||
{ /* ca9148d0-598a-11d2-a1d4-00805f8f694d */ \
|
||||
0xca9148d0, \
|
||||
0x598a, \
|
||||
0x11d2, \
|
||||
{0xa1, 0xd4, 0x00, 0x80, 0x5f, 0x8f, 0x69, 0x4d } \
|
||||
}
|
||||
|
||||
#endif // nsISecureJNI2_h___
|
|
@ -1,79 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS FOR SYMANTEC DEBUGGER
|
||||
//
|
||||
// This interface allows the browser to initialize a JVM that supports a
|
||||
// debugger. It's called the "Symantec Debugger Interface" because it currently
|
||||
// provides access to the Symantec Cafe or Visual Cafe debugger in the Netscape
|
||||
// JVM. It is not meant to be the be-all-to-end-all of debugger interfaces.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsISymantecDebugManager_h___
|
||||
#define nsISymantecDebugManager_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Symantec Debug Manager Interface
|
||||
//
|
||||
// Implemented by the browser that supports the Symantec debugger.
|
||||
|
||||
#define NS_ISYMANTECDEBUGMANAGER_IID \
|
||||
{ /* 131362e0-d985-11d1-8155-006008119d7a */ \
|
||||
0x131362e0, \
|
||||
0xd985, \
|
||||
0x11d1, \
|
||||
{0x81, 0x55, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
class nsISymantecDebugManager : public nsISupports {
|
||||
public:
|
||||
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISYMANTECDEBUGMANAGER_IID)
|
||||
|
||||
NS_IMETHOD
|
||||
SetDebugAgentPassword(PRInt32 pwd) = 0;
|
||||
|
||||
};
|
||||
|
||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsISymantecDebugManager,
|
||||
NS_ISYMANTECDEBUGMANAGER_IID)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsISymantecDebugManager_h___ */
|
|
@ -1,81 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS FOR SYMANTEC DEBUGGER
|
||||
//
|
||||
// This interface allows the browser to initialize a JVM that supports a
|
||||
// debugger. It's called the "Symantec Debugger Interface" because it currently
|
||||
// provides access to the Symantec Cafe or Visual Cafe debugger in the Netscape
|
||||
// JVM. It is not meant to be the be-all-to-end-all of debugger interfaces.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsISymantecDebugger_h___
|
||||
#define nsISymantecDebugger_h___
|
||||
|
||||
#include "nsISupports.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Symantec Debugger Interface
|
||||
//
|
||||
// Implemented by the JVM plugin that supports the Symantec debugger.
|
||||
|
||||
enum nsSymantecDebugPort {
|
||||
nsSymantecDebugPort_None = 0,
|
||||
nsSymantecDebugPort_SharedMemory = -1
|
||||
// anything else is a port number
|
||||
};
|
||||
|
||||
class nsISymantecDebugger : public nsISupports {
|
||||
public:
|
||||
|
||||
NS_IMETHOD
|
||||
StartDebugger(nsSymantecDebugPort port) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_ISYMANTECDEBUGGER_IID \
|
||||
{ /* 954399f0-d980-11d1-8155-006008119d7a */ \
|
||||
0x954399f0, \
|
||||
0xd980, \
|
||||
0x11d1, \
|
||||
{0x81, 0x55, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsISymantecDebugger_h___ */
|
|
@ -1,65 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS
|
||||
//
|
||||
// This interface allows a Java virtual machine to be plugged into
|
||||
// Communicator to implement the APPLET tag and host applets.
|
||||
//
|
||||
// Note that this is the C++ interface that the plugin sees. The browser
|
||||
// uses a specific implementation of this, nsJVMPlugin, found in jvmmgr.h.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsjvm_h___
|
||||
#define nsjvm_h___
|
||||
|
||||
#include "nsplugin.h"
|
||||
#include "nsIJRIPlugin.h"
|
||||
#include "nsIJVMConsole.h"
|
||||
#include "nsIJVMManager.h"
|
||||
#include "nsIJVMPlugin.h"
|
||||
#include "nsIJVMPluginInstance.h"
|
||||
#include "nsIJVMPluginTagInfo.h"
|
||||
#include "nsISymantecDebugManager.h"
|
||||
#include "nsISymantecDebugger.h"
|
||||
#include "nsILiveconnect.h"
|
||||
#include "nsIJVMThreadManager.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif /* nsjvm_h___ */
|
|
@ -1,117 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
MODULE = oji
|
||||
IS_COMPONENT = 1
|
||||
MODULE_NAME = nsCJVMManagerModule
|
||||
GRE_MODULE = 1
|
||||
LIBXUL_LIBRARY = 1
|
||||
|
||||
REQUIRES = xpcom \
|
||||
string \
|
||||
liveconnect \
|
||||
java \
|
||||
js \
|
||||
plugin \
|
||||
caps \
|
||||
pref \
|
||||
necko \
|
||||
dom \
|
||||
widget \
|
||||
xpconnect \
|
||||
windowwatcher \
|
||||
gfx \
|
||||
thebes \
|
||||
content \
|
||||
layout \
|
||||
docshell \
|
||||
webbrwsr \
|
||||
intl \
|
||||
locale \
|
||||
$(NULL)
|
||||
|
||||
LIBRARY_NAME = oji
|
||||
EXPORT_LIBRARY = 1
|
||||
ifeq ($(OS_ARCH),WINNT)
|
||||
EXTRA_DSO_LIBS = jsj$(MOZ_BITS)$(VERSION_NUMBER)
|
||||
else
|
||||
EXTRA_DSO_LIBS = jsj
|
||||
endif
|
||||
|
||||
CPPSRCS = \
|
||||
jvmmgr.cpp \
|
||||
scd.cpp \
|
||||
nsJVMManager.cpp \
|
||||
nsJVMPluginTagInfo.cpp \
|
||||
ProxyJNI.cpp \
|
||||
nsCNullSecurityContext.cpp \
|
||||
ProxyClassLoader.cpp \
|
||||
nsCSecurityContext.cpp \
|
||||
nsCJVMManagerFactory.cpp \
|
||||
nsJVMConfigManager.cpp \
|
||||
lcglue.cpp \
|
||||
$(NULL)
|
||||
|
||||
ifeq ($(TARGET_MD_ARCH), unix)
|
||||
CPPSRCS += \
|
||||
nsJVMConfigManagerUnix.cpp \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
DEFINES += -DNS_OJI_IMPL=1
|
||||
|
||||
EXPORTS = \
|
||||
jvmmgr.h \
|
||||
nsJVMManager.h \
|
||||
nsJVMPluginTagInfo.h \
|
||||
$(NULL)
|
||||
|
||||
EXTRA_DSO_LDOPTS = \
|
||||
$(LIBS_DIR) \
|
||||
$(EXTRA_DSO_LIBS) \
|
||||
$(MOZ_COMPONENT_LIBS) \
|
||||
$(MOZ_JS_LIBS) \
|
||||
$(NULL)
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
|
@ -1,223 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* vim: set ts=4 sw=4 et tw=78: */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Patrick Beard <beard@netscape.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "ProxyClassLoader.h"
|
||||
|
||||
#include "jsapi.h"
|
||||
#include "jsjava.h"
|
||||
#include "prprf.h"
|
||||
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsIJSContextStack.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsNetUtil.h"
|
||||
#include "ProxyJNI.h"
|
||||
#include "nsCNullSecurityContext.h"
|
||||
|
||||
/**
|
||||
* Obtain the netscape.oji.ProxyClassLoader instance associated with the
|
||||
* document of the currently running script. For now, store a LiveConnect
|
||||
* wrapper for this instance in window.navigator.javaclasses. There
|
||||
* hopefully aren't any security concerns with exposing this to scripts,
|
||||
* as the constructor is private, and the class loader itself can
|
||||
* only load classes from the document's URL and below.
|
||||
*/
|
||||
static nsresult getScriptClassLoader(JNIEnv* env, jobject* classloader)
|
||||
{
|
||||
// get the current JSContext from the context stack service.
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJSContextStack> contexts =
|
||||
do_GetService("@mozilla.org/js/xpc/ContextStack;1", &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
JSContext* cx;
|
||||
rv = contexts->Peek(&cx);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (!cx) return NS_ERROR_NOT_AVAILABLE;
|
||||
|
||||
// lookup "window.navigator.javaclasses", if it exists, this is the class
|
||||
// loader bound to this page.
|
||||
JSObject* window = JS_GetGlobalObject(cx);
|
||||
if (!window) return NS_ERROR_FAILURE;
|
||||
|
||||
jsval navigator = JSVAL_NULL;
|
||||
if (!JS_LookupProperty(cx, window, "navigator", &navigator))
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
jsval javaclasses = JSVAL_NULL;
|
||||
if (!JSVAL_IS_PRIMITIVE(navigator)) {
|
||||
uintN attrs;
|
||||
JSBool found;
|
||||
|
||||
// Make sure that we pull out the correct javaclasses object that we
|
||||
// set. Since content can't spoof READONLY or PERMANANT properties,
|
||||
// their presence on this property indicates that this truely is the
|
||||
// correct object.
|
||||
JSObject *obj = JSVAL_TO_OBJECT(navigator);
|
||||
if (!JS_GetPropertyAttributes(cx, obj, "javaclasses", &attrs, &found))
|
||||
return NS_ERROR_FAILURE;
|
||||
if ((~attrs & (JSPROP_READONLY | JSPROP_PERMANENT)) == 0 &&
|
||||
!JS_GetProperty(cx, obj, "javaclasses", &javaclasses)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// Unwrap this, the way LiveConnect does it. Note that this function
|
||||
// checks if javaclasses is primitive or not.
|
||||
if (JSJ_ConvertJSValueToJavaObject(cx, javaclasses, classloader))
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// use default netscape.oji.ProxyClassLoaderFactory (which is no longer
|
||||
// supported in recent JRE) as the classloader
|
||||
jclass netscape_oji_ProxyClassLoaderFac =
|
||||
env->FindClass("netscape/oji/ProxyClassLoaderFactory");
|
||||
if (!netscape_oji_ProxyClassLoaderFac) {
|
||||
env->ExceptionClear();
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
jmethodID staticMethodID =
|
||||
env->GetStaticMethodID(netscape_oji_ProxyClassLoaderFac,
|
||||
"createClassLoader",
|
||||
"(Ljava/lang/String;)Ljava/lang/ClassLoader;");
|
||||
if (!staticMethodID) {
|
||||
env->ExceptionClear();
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// Obtain the URL of the document of the currently running script. This will
|
||||
// be used as the default location to download classes from.
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
nsCOMPtr<nsIPrincipal> principal, sysprincipal;
|
||||
rv = secMan->GetPrincipalFromContext(cx, getter_AddRefs(principal));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
rv = secMan->GetSystemPrincipal(getter_AddRefs(sysprincipal));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
PRBool equals;
|
||||
rv = principal->Equals(sysprincipal, &equals);
|
||||
// Can't get URI from system principal
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
if (equals) return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsIURI> codebase;
|
||||
rv = principal->GetURI(getter_AddRefs(codebase));
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
// create a netscape.oji.ProxyClassLoader instance.
|
||||
nsCAutoString spec;
|
||||
rv = codebase->GetSpec(spec);
|
||||
if (NS_FAILED(rv)) return rv;
|
||||
|
||||
jstring jspec = env->NewStringUTF(spec.get());
|
||||
if (!jspec) {
|
||||
env->ExceptionClear();
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// In order to have permission to create classloader, we need to grant
|
||||
// enough permission
|
||||
nsISecurityContext* origContext = nsnull;
|
||||
if (NS_FAILED(GetSecurityContext(env, &origContext))) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
nsCOMPtr<nsISecurityContext> nullContext(new nsCNullSecurityContext());
|
||||
if (!nullContext) {
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
SetSecurityContext(env, nullContext);
|
||||
*classloader = env->CallStaticObjectMethod(netscape_oji_ProxyClassLoaderFac,
|
||||
staticMethodID, jspec);
|
||||
SetSecurityContext(env, origContext);
|
||||
if (!*classloader) {
|
||||
env->ExceptionClear();
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
env->DeleteLocalRef(jspec);
|
||||
env->DeleteLocalRef(netscape_oji_ProxyClassLoaderFac);
|
||||
|
||||
// now, cache the class loader in "window.navigator.javaclasses"
|
||||
if (!JSVAL_IS_PRIMITIVE(navigator) &&
|
||||
JSJ_ConvertJavaObjectToJSValue(cx, *classloader, &javaclasses) &&
|
||||
!JS_DefineProperty(cx, JSVAL_TO_OBJECT(navigator), "javaclasses",
|
||||
javaclasses, NULL, NULL, JSPROP_ENUMERATE |
|
||||
JSPROP_READONLY | JSPROP_PERMANENT)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
jclass ProxyFindClass(JNIEnv* env, const char* name)
|
||||
{
|
||||
do {
|
||||
// TODO: prevent recursive call to ProxyFindClass, if netscape.oji.ProxyClassLoader
|
||||
// isn't found by getScriptClassLoader().
|
||||
jobject classloader;
|
||||
jthrowable jException = env->ExceptionOccurred();
|
||||
if (jException != NULL) {
|
||||
// Clean up exception
|
||||
env->ExceptionClear();
|
||||
// Release local ref
|
||||
env->DeleteLocalRef(jException);
|
||||
}
|
||||
nsresult rv = getScriptClassLoader(env, &classloader);
|
||||
if (NS_FAILED(rv)) break;
|
||||
|
||||
jclass netscape_oji_ProxyClassLoader = env->GetObjectClass(classloader);
|
||||
jmethodID loadClassID = env->GetMethodID(netscape_oji_ProxyClassLoader, "loadClass",
|
||||
"(Ljava/lang/String;)Ljava/lang/Class;");
|
||||
env->DeleteLocalRef(netscape_oji_ProxyClassLoader);
|
||||
if (!loadClassID) {
|
||||
env->ExceptionClear();
|
||||
break;
|
||||
}
|
||||
jstring jname = env->NewStringUTF(name);
|
||||
jvalue jargs[1]; jargs[0].l = jname;
|
||||
jclass c = (jclass) env->CallObjectMethodA(classloader, loadClassID, jargs);
|
||||
env->DeleteLocalRef(jname);
|
||||
return c;
|
||||
} while (0);
|
||||
return 0;
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Patrick Beard <beard@netscape.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef ProxyClassLoader_h__
|
||||
#define ProxyClassLoader_h__
|
||||
|
||||
#ifndef JNI_H
|
||||
#include "jni.h"
|
||||
#endif
|
||||
|
||||
jclass ProxyFindClass(JNIEnv* env, const char* name);
|
||||
|
||||
#endif /* ProxyClassLoader_h__ */
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,61 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is part of the mozilla.org LDAP XPCOM SDK.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Xiaobin Lu <Xiaobin.Lu@eng.Sun.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
package netscape.oji;
|
||||
import java.net.URLClassLoader;
|
||||
import java.net.URL;
|
||||
import java.net.MalformedURLException;
|
||||
|
||||
public abstract class ProxyClassLoaderFactory {
|
||||
|
||||
public static ClassLoader createClassLoader(final String documentURL)
|
||||
throws MalformedURLException {
|
||||
URL[] documentURLArray = new URL[1];
|
||||
int lastIndx = documentURL.lastIndexOf("/");
|
||||
String urlPath = documentURL.substring(0, lastIndx+1);
|
||||
try {
|
||||
documentURLArray[0] = new URL(urlPath);
|
||||
}
|
||||
catch (MalformedURLException e) {
|
||||
System.out.println("MalformedURLException was caught");
|
||||
return null;
|
||||
}
|
||||
return new URLClassLoader(documentURLArray);
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
#
|
||||
# This is a list of files to be copied to the mozilla:dist directory
|
||||
#
|
||||
|
||||
nsjvm.h
|
||||
nsscd.h
|
||||
jvmmgr.h
|
|
@ -1,382 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "prlog.h"
|
||||
#include "nsJVMManager.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIJVMPrefsWindow.h"
|
||||
#include "ProxyJNI.h"
|
||||
#include "lcglue.h"
|
||||
#include "nsCSecurityContext.h"
|
||||
#include "nsIJSContextStack.h"
|
||||
|
||||
#define NS_JVMMANAGER_CONTRACTID "@mozilla.org/oji/jvm-mgr;1"
|
||||
static NS_DEFINE_IID(kIJVMConsoleIID, NS_IJVMCONSOLE_IID);
|
||||
static NS_DEFINE_IID(kIJVMPrefsWindowIID, NS_IJVMPREFSWINDOW_IID);
|
||||
static NS_DEFINE_IID(kISymantecDebuggerIID, NS_ISYMANTECDEBUGGER_IID);
|
||||
|
||||
PR_BEGIN_EXTERN_C
|
||||
|
||||
#ifdef PRE_SERVICE_MANAGER
|
||||
extern nsPluginManager* thePluginManager;
|
||||
#endif
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ReleaseJVMMgr(nsJVMManager* mgr)
|
||||
{
|
||||
mgr->Release();
|
||||
}
|
||||
|
||||
static nsIJVMPlugin*
|
||||
GetRunningJVM(void)
|
||||
{
|
||||
nsIJVMPlugin* jvm = NULL;
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return jvm;
|
||||
nsJVMManager* jvmMgr = (nsJVMManager *)managerService.get();
|
||||
if (jvmMgr) {
|
||||
nsJVMStatus status = jvmMgr->GetJVMStatus();
|
||||
if (status == nsJVMStatus_Enabled)
|
||||
status = jvmMgr->StartupJVM();
|
||||
if (status == nsJVMStatus_Running) {
|
||||
jvm = jvmMgr->GetJVMPlugin();
|
||||
}
|
||||
}
|
||||
return jvm;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(nsJVMStatus)
|
||||
JVM_StartupJVM(void)
|
||||
{
|
||||
GetRunningJVM();
|
||||
return JVM_GetJVMStatus();
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(nsJVMStatus)
|
||||
JVM_ShutdownJVM(void)
|
||||
{
|
||||
nsJVMStatus status = nsJVMStatus_Failed;
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return status;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
status = mgr->ShutdownJVM();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
PR_IMPLEMENT(nsJVMStatus)
|
||||
JVM_GetJVMStatus(void)
|
||||
{
|
||||
nsresult rv;
|
||||
nsJVMStatus status = nsJVMStatus_Disabled;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return status;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
status = mgr->GetJVMStatus();
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_AddToClassPath(const char* dirPath)
|
||||
{
|
||||
nsresult err = NS_ERROR_FAILURE;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &err);
|
||||
if (NS_FAILED(err)) return PR_FALSE;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
err = mgr->AddToClassPath(dirPath);
|
||||
}
|
||||
return err == NS_OK;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This will get the JVMConsole if one is available. You have to Release it
|
||||
// when you're done with it.
|
||||
static nsIJVMConsole*
|
||||
GetConsole(void)
|
||||
{
|
||||
// PENDING(edburns): workaround for bug 76677, make sure the JVM is
|
||||
// started.
|
||||
JNIEnv* env = JVM_GetJNIEnv();
|
||||
if (!env)
|
||||
return nsnull;
|
||||
|
||||
nsIJVMConsole* console = nsnull;
|
||||
nsIJVMPlugin* jvm = GetRunningJVM();
|
||||
if (jvm)
|
||||
jvm->QueryInterface(kIJVMConsoleIID, (void**)&console);
|
||||
return console;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ShowConsole(void)
|
||||
{
|
||||
nsIJVMConsole* console = GetConsole();
|
||||
if (console) {
|
||||
console->Show();
|
||||
console->Release();
|
||||
}
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_HideConsole(void)
|
||||
{
|
||||
nsJVMStatus status = JVM_GetJVMStatus();
|
||||
if (status == nsJVMStatus_Running) {
|
||||
nsIJVMConsole* console = GetConsole();
|
||||
if (console) {
|
||||
console->Hide();
|
||||
console->Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_IsConsoleVisible(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsJVMStatus status = JVM_GetJVMStatus();
|
||||
if (status == nsJVMStatus_Running) {
|
||||
nsIJVMConsole* console = GetConsole();
|
||||
if (console) {
|
||||
nsresult err = console->IsVisible(&result);
|
||||
PR_ASSERT(err != NS_OK ? result == PR_FALSE : PR_TRUE);
|
||||
console->Release();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_PrintToConsole(const char* msg)
|
||||
{
|
||||
nsJVMStatus status = JVM_GetJVMStatus();
|
||||
if (status != nsJVMStatus_Running)
|
||||
return;
|
||||
nsIJVMConsole* console = GetConsole();
|
||||
if (console) {
|
||||
console->Print(msg);
|
||||
console->Release();
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This will get the JVMPrefsWindow if one is available. You have to Release it
|
||||
// when you're done with it.
|
||||
static nsIJVMPrefsWindow*
|
||||
GetPrefsWindow(void)
|
||||
{
|
||||
nsIJVMPrefsWindow* prefsWin = NULL;
|
||||
nsIJVMPlugin* jvm = GetRunningJVM();
|
||||
if (jvm) {
|
||||
jvm->QueryInterface(kIJVMPrefsWindowIID, (void**)&prefsWin);
|
||||
// jvm->Release(); // GetRunningJVM no longer calls AddRef
|
||||
}
|
||||
return prefsWin;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ShowPrefsWindow(void)
|
||||
{
|
||||
nsIJVMPrefsWindow* prefsWin = GetPrefsWindow();
|
||||
if (prefsWin) {
|
||||
prefsWin->Show();
|
||||
prefsWin->Release();
|
||||
}
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_HidePrefsWindow(void)
|
||||
{
|
||||
nsJVMStatus status = JVM_GetJVMStatus();
|
||||
if (status == nsJVMStatus_Running) {
|
||||
nsIJVMPrefsWindow* prefsWin = GetPrefsWindow();
|
||||
if (prefsWin) {
|
||||
prefsWin->Hide();
|
||||
prefsWin->Release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_IsPrefsWindowVisible(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsJVMStatus status = JVM_GetJVMStatus();
|
||||
if (status == nsJVMStatus_Running) {
|
||||
nsIJVMPrefsWindow* prefsWin = GetPrefsWindow();
|
||||
if (prefsWin) {
|
||||
nsresult err = prefsWin->IsVisible(&result);
|
||||
PR_ASSERT(err != NS_OK ? result == PR_FALSE : PR_TRUE);
|
||||
prefsWin->Release();
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_StartDebugger(void)
|
||||
{
|
||||
nsIJVMPlugin* jvm = GetRunningJVM();
|
||||
if (jvm) {
|
||||
nsISymantecDebugger* debugger;
|
||||
if (jvm->QueryInterface(kISymantecDebuggerIID, (void**)&debugger) == NS_OK) {
|
||||
// XXX should we make sure the vm is started first?
|
||||
debugger->StartDebugger(nsSymantecDebugPort_SharedMemory);
|
||||
debugger->Release();
|
||||
}
|
||||
// jvm->Release(); // GetRunningJVM no longer calls AddRef
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PR_IMPLEMENT(JNIEnv*)
|
||||
JVM_GetJNIEnv(void)
|
||||
{
|
||||
/* get proxy env for current thread. */
|
||||
JVMContext* context = GetJVMContext();
|
||||
JNIEnv* env = context->proxyEnv;
|
||||
if (env != NULL)
|
||||
return env;
|
||||
|
||||
// Create a Proxy JNI to associate with this NSPR thread.
|
||||
nsIJVMPlugin* jvmPlugin = GetRunningJVM();
|
||||
if (jvmPlugin != NULL)
|
||||
env = CreateProxyJNI(jvmPlugin);
|
||||
|
||||
/* Associate the JNIEnv with the current thread. */
|
||||
context->proxyEnv = env;
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ReleaseJNIEnv(JNIEnv* env)
|
||||
{
|
||||
/**
|
||||
* this is now done when the NSPR thread is shutdown. JNIEnvs are always tied to the
|
||||
* lifetime of threads.
|
||||
*/
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(nsresult)
|
||||
JVM_SpendTime(PRUint32 timeMillis)
|
||||
{
|
||||
#ifdef XP_MAC
|
||||
nsresult result = NS_ERROR_NOT_INITIALIZED;
|
||||
nsIJVMPlugin* jvm = GetRunningJVM();
|
||||
if (jvm != NULL)
|
||||
result = jvm->SpendTime(timeMillis);
|
||||
return result;
|
||||
#else
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
#endif
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_MaybeStartupLiveConnect()
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->MaybeStartupLiveConnect();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_MaybeShutdownLiveConnect(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->MaybeShutdownLiveConnect();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
PR_IMPLEMENT(PRBool)
|
||||
JVM_IsLiveConnectEnabled(void)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(NS_JVMMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv)) return result;
|
||||
nsJVMManager* mgr = (nsJVMManager *)managerService.get();
|
||||
if (mgr) {
|
||||
result = mgr->IsLiveConnectEnabled();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
PR_IMPLEMENT(nsISecurityContext*)
|
||||
JVM_GetJSSecurityContext()
|
||||
{
|
||||
JSContext *cx = nsnull;
|
||||
nsCOMPtr<nsIJSContextStack> stack = do_GetService("@mozilla.org/js/xpc/ContextStack;1");
|
||||
if (stack) stack->Peek(&cx);
|
||||
|
||||
nsCSecurityContext *securityContext = new nsCSecurityContext(cx);
|
||||
if (securityContext == nsnull) {
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
NS_ADDREF(securityContext);
|
||||
return securityContext;
|
||||
}
|
||||
|
||||
PR_END_EXTERN_C
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
|
@ -1,144 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef jvmmgr_h___
|
||||
#define jvmmgr_h___
|
||||
|
||||
#include "prtypes.h"
|
||||
#include "jni.h"
|
||||
#include "jsdbgapi.h"
|
||||
#include "nsError.h"
|
||||
|
||||
#include "nsISecurityContext.h"
|
||||
|
||||
struct nsJVMManager;
|
||||
|
||||
typedef enum nsJVMStatus {
|
||||
nsJVMStatus_Enabled, /* but not Running */
|
||||
nsJVMStatus_Disabled, /* explicitly disabled */
|
||||
nsJVMStatus_Running, /* enabled and started */
|
||||
nsJVMStatus_Failed /* enabled but failed to start */
|
||||
} nsJVMStatus;
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* Interface for C Clients
|
||||
******************************************************************************/
|
||||
|
||||
PR_BEGIN_EXTERN_C
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_ReleaseJVMMgr(struct nsJVMManager* mgr);
|
||||
|
||||
PR_EXTERN(nsJVMStatus)
|
||||
JVM_StartupJVM(void);
|
||||
|
||||
PR_EXTERN(nsJVMStatus)
|
||||
JVM_ShutdownJVM(void);
|
||||
|
||||
PR_EXTERN(nsJVMStatus)
|
||||
JVM_GetJVMStatus(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_AddToClassPath(const char* dirPath);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_ShowConsole(void);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_HideConsole(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_IsConsoleVisible(void);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_PrintToConsole(const char* msg);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_ShowPrefsWindow(void);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_HidePrefsWindow(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_IsPrefsWindowVisible(void);
|
||||
|
||||
PR_EXTERN(void)
|
||||
JVM_StartDebugger(void);
|
||||
|
||||
PR_EXTERN(JNIEnv*)
|
||||
JVM_GetJNIEnv(void);
|
||||
|
||||
PR_IMPLEMENT(void)
|
||||
JVM_ReleaseJNIEnv(JNIEnv *pJNIEnv);
|
||||
|
||||
PR_EXTERN(nsresult)
|
||||
JVM_SpendTime(PRUint32 timeMillis);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_MaybeStartupLiveConnect(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_MaybeShutdownLiveConnect(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_IsLiveConnectEnabled(void);
|
||||
|
||||
PR_EXTERN(nsJVMStatus)
|
||||
JVM_ShutdownJVM(void);
|
||||
|
||||
PR_EXTERN(PRBool)
|
||||
JVM_NSISecurityContextImplies(JSStackFrame *pCurrentFrame, const char* target, const char* action);
|
||||
|
||||
PR_EXTERN(JSPrincipals*)
|
||||
JVM_GetJavaPrincipalsFromStack(JSStackFrame *pCurrentFrame);
|
||||
|
||||
PR_EXTERN(void *)
|
||||
JVM_GetJavaPrincipalsFromStackAsNSVector(JSStackFrame *pCurrentFrame);
|
||||
|
||||
PR_EXTERN(JSStackFrame**)
|
||||
JVM_GetStartJSFrameFromParallelStack(void);
|
||||
|
||||
PR_EXTERN(JSStackFrame*)
|
||||
JVM_GetEndJSFrameFromParallelStack(JSStackFrame *pCurrentFrame);
|
||||
|
||||
PR_EXTERN(nsISecurityContext*)
|
||||
JVM_GetJSSecurityContext();
|
||||
|
||||
PR_END_EXTERN_C
|
||||
|
||||
#endif /* jvmmgr_h___ */
|
|
@ -1,427 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "prthread.h"
|
||||
#include "nsJVMManager.h"
|
||||
#include "nsIPluginInstancePeer2.h"
|
||||
#include "ProxyJNI.h"
|
||||
#include "lcglue.h"
|
||||
#include "nscore.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "nsISecurityContext.h"
|
||||
#include "nsCSecurityContext.h"
|
||||
#include "nsCRT.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsDOMJSUtils.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;
|
||||
extern "C" int XP_JAVA_GENERAL_FAILURE;
|
||||
extern "C" int XP_JAVA_STARTUP_FAILED;
|
||||
extern "C" int XP_JAVA_DEBUGGER_FAILED;
|
||||
|
||||
/**
|
||||
* Template based Thread Local Storage.
|
||||
*/
|
||||
template <class T>
|
||||
class ThreadLocalStorage {
|
||||
public:
|
||||
ThreadLocalStorage(PRThreadPrivateDTOR dtor) : mIndex(0), mValid(PR_FALSE)
|
||||
{
|
||||
mValid = (PR_NewThreadPrivateIndex(&mIndex, dtor) == PR_SUCCESS);
|
||||
}
|
||||
|
||||
void set(T value)
|
||||
{
|
||||
if (mValid) PR_SetThreadPrivate(mIndex, value);
|
||||
}
|
||||
|
||||
T get()
|
||||
{
|
||||
return (T) (mValid ? PR_GetThreadPrivate(mIndex) : 0);
|
||||
}
|
||||
|
||||
private:
|
||||
PRUintn mIndex;
|
||||
PRBool mValid;
|
||||
};
|
||||
|
||||
|
||||
static void detach_JVMContext(void* storage)
|
||||
{
|
||||
JVMContext* context = reinterpret_cast<JVMContext*>(storage);
|
||||
|
||||
JNIEnv* proxyEnv = context->proxyEnv;
|
||||
if (proxyEnv != NULL) {
|
||||
DeleteProxyJNI(proxyEnv);
|
||||
context->proxyEnv = NULL;
|
||||
}
|
||||
|
||||
delete context;
|
||||
}
|
||||
|
||||
JVMContext* GetJVMContext()
|
||||
{
|
||||
/* Use NSPR thread private data to manage the per-thread JNIEnv* association. */
|
||||
static ThreadLocalStorage<JVMContext*> localContext((PRThreadPrivateDTOR)&detach_JVMContext);
|
||||
JVMContext* context = localContext.get();
|
||||
if (context == NULL) {
|
||||
context = new JVMContext;
|
||||
context->proxyEnv = NULL;
|
||||
context->jsj_env = NULL;
|
||||
localContext.set(context);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// LiveConnect callbacks
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
JS_BEGIN_EXTERN_C
|
||||
|
||||
#include "jscntxt.h"
|
||||
|
||||
static JSContext*
|
||||
map_jsj_thread_to_js_context_impl(JSJavaThreadState *jsj_env, void* java_applet_obj, JNIEnv *env, char **errp)
|
||||
{
|
||||
// Guess what? This design is totally invalid under Gecko, because there isn't a 1 to 1 mapping
|
||||
// between NSPR threads and JSContexts. We have to ask the plugin instance peer what JSContext
|
||||
// it lives in to make any sense of all this.
|
||||
JSContext* context = NULL;
|
||||
if (java_applet_obj != NULL) {
|
||||
nsIPluginInstance* pluginInstance = reinterpret_cast<nsIPluginInstance*>(java_applet_obj);
|
||||
nsIPluginInstancePeer* pluginPeer = NULL;
|
||||
if (pluginInstance->GetPeer(&pluginPeer) == NS_OK) {
|
||||
nsIPluginInstancePeer2* pluginPeer2 = NULL;
|
||||
if (pluginPeer->QueryInterface(NS_GET_IID(nsIPluginInstancePeer2), (void**) &pluginPeer2) == NS_OK) {
|
||||
pluginPeer2->GetJSContext(&context);
|
||||
NS_RELEASE(pluginPeer2);
|
||||
}
|
||||
NS_RELEASE(pluginPeer);
|
||||
}
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
/*
|
||||
** This callback is called to map a JSContext to a JSJavaThreadState which
|
||||
** is a wrapper around JNIEnv. Hence this callback essentially maps a JSContext
|
||||
** to a java thread. JSJ_AttachCurrentThreadToJava just calls AttachCurrentThread
|
||||
** on the java vm.
|
||||
*/
|
||||
static JSJavaThreadState*
|
||||
map_js_context_to_jsj_thread_impl(JSContext *cx, char **errp)
|
||||
{
|
||||
*errp = NULL;
|
||||
|
||||
// FIXME: how do we ever break the association between the jsj_env and the
|
||||
// JVMContext? This needs to be figured out. Otherwise, we'll end up with the
|
||||
// same dangling JSContext problem we are trying to weed out.
|
||||
|
||||
JVMContext* context = GetJVMContext();
|
||||
JSJavaThreadState* jsj_env = context->jsj_env;
|
||||
if (jsj_env != NULL)
|
||||
return jsj_env;
|
||||
|
||||
JSJavaVM* js_jvm = NULL;
|
||||
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();
|
||||
if (js_jvm == NULL) {
|
||||
*errp = strdup("Failed to attach to a Java VM.");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
jsj_env = JSJ_AttachCurrentThreadToJava(js_jvm, NULL, NULL);
|
||||
context->jsj_env = jsj_env;
|
||||
|
||||
return jsj_env;
|
||||
}
|
||||
|
||||
/*
|
||||
** 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
|
||||
** to get to the javascript JSObject.
|
||||
*/
|
||||
|
||||
static JSObject*
|
||||
map_java_object_to_js_object_impl(JNIEnv *env, void *pluginInstancePtr, char* *errp)
|
||||
{
|
||||
JSObject *window = NULL;
|
||||
PRBool mayscript = PR_FALSE;
|
||||
PRBool jvmMochaPrefsEnabled = PR_TRUE;
|
||||
nsresult err = NS_OK;
|
||||
|
||||
*errp = NULL;
|
||||
|
||||
if (pluginInstancePtr == NULL) {
|
||||
env->ThrowNew(env->FindClass("java/lang/NullPointerException"), "plugin instance is NULL");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//TODO: Check if Mocha is enabled. To get to any mocha api, we should use service
|
||||
// manager and get to the appropriate service.
|
||||
// jvmMochaPrefsEnabled = LM_GetMochaEnabled();
|
||||
if (!jvmMochaPrefsEnabled) {
|
||||
*errp = strdup("JSObject.getWindow() failed: java preference is disabled");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Check for the mayscript tag.
|
||||
*/
|
||||
nsIPluginInstance* pluginInstance = reinterpret_cast<nsIPluginInstance*>(pluginInstancePtr);
|
||||
nsIPluginInstancePeer* pluginPeer;
|
||||
if (pluginInstance->GetPeer(&pluginPeer) == NS_OK) {
|
||||
nsIJVMPluginTagInfo* tagInfo;
|
||||
if (pluginPeer->QueryInterface(NS_GET_IID(nsIJVMPluginTagInfo), (void**) &tagInfo) == NS_OK) {
|
||||
err = tagInfo->GetMayScript(&mayscript);
|
||||
// PR_ASSERT(err != NS_OK ? mayscript == PR_FALSE : PR_TRUE);
|
||||
NS_RELEASE(tagInfo);
|
||||
}
|
||||
if ( !mayscript ) {
|
||||
*errp = strdup("JSObject.getWindow() requires mayscript attribute on this Applet");
|
||||
} else {
|
||||
nsIPluginInstancePeer2* pluginPeer2 = nsnull;
|
||||
if (pluginPeer->QueryInterface(NS_GET_IID(nsIPluginInstancePeer2),
|
||||
(void**) &pluginPeer2) == NS_OK) {
|
||||
err = pluginPeer2->GetJSWindow(&window);
|
||||
NS_RELEASE(pluginPeer2);
|
||||
}
|
||||
}
|
||||
NS_RELEASE(pluginPeer);
|
||||
}
|
||||
|
||||
//TODO: Get to the window object using DOM.
|
||||
// window = getDOMWindow().getScriptOwner().getJSObject().
|
||||
return window;
|
||||
}
|
||||
|
||||
static JSPrincipals*
|
||||
get_JSPrincipals_from_java_caller_impl(JNIEnv *pJNIEnv, JSContext *pJSContext, void **ppNSIPrincipalArrayIN, int numPrincipals, void *pNSISecurityContext)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv))
|
||||
return NULL;
|
||||
|
||||
nsCOMPtr<nsIPrincipal> principal;
|
||||
rv = secMan->GetPrincipalFromContext(pJSContext,
|
||||
getter_AddRefs(principal));
|
||||
if (NS_FAILED(rv))
|
||||
return NULL;
|
||||
|
||||
JSPrincipals* jsprincipals = NULL;
|
||||
principal->GetJSPrincipals(pJSContext, &jsprincipals);
|
||||
return jsprincipals;
|
||||
}
|
||||
|
||||
static jobject
|
||||
get_java_wrapper_impl(JNIEnv *pJNIEnv, lcjsobject a_jsobject)
|
||||
{
|
||||
nsresult err = NS_OK;
|
||||
jobject pJSObjectWrapper = NULL;
|
||||
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);
|
||||
}
|
||||
}
|
||||
if ( err != NS_OK )
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
return pJSObjectWrapper;
|
||||
}
|
||||
|
||||
static lcjsobject
|
||||
unwrap_java_wrapper_impl(JNIEnv *pJNIEnv, jobject java_wrapper)
|
||||
{
|
||||
lcjsobject obj = 0;
|
||||
nsresult err = NS_OK;
|
||||
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);
|
||||
}
|
||||
}
|
||||
if ( err != NS_OK )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
static JSBool
|
||||
enter_js_from_java_impl(JNIEnv *jEnv, char **errp,
|
||||
void **pNSIPrincipaArray, int numPrincipals,
|
||||
void *pNSISecurityContext,
|
||||
void *java_applet_obj)
|
||||
{
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
exit_js_impl(JNIEnv *jEnv, JSContext *cx)
|
||||
{
|
||||
// The main idea is to execute terminate function if have any;
|
||||
if (cx)
|
||||
{
|
||||
nsIScriptContext *scriptContext = GetScriptContextFromJSContext(cx);
|
||||
|
||||
if (scriptContext)
|
||||
{
|
||||
scriptContext->ScriptEvaluated(PR_TRUE);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static PRBool
|
||||
create_java_vm_impl(SystemJavaVM* *jvm, JNIEnv* *initialEnv, void* initargs)
|
||||
{
|
||||
// const char* classpath = (const char*)initargs;
|
||||
nsCOMPtr<nsIJVMManager> serv = do_GetService(kJVMManagerCID);
|
||||
if (!serv)
|
||||
return PR_FALSE;
|
||||
*initialEnv = JVM_GetJNIEnv();
|
||||
if (!*initialEnv)
|
||||
return PR_FALSE;
|
||||
// serv will be released when this function returns, but that's OK because
|
||||
// the XPCOM service manager will keep it alive.
|
||||
*jvm = reinterpret_cast<SystemJavaVM*>(serv.get());
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
static PRBool
|
||||
destroy_java_vm_impl(SystemJavaVM* jvm, JNIEnv* initialEnv)
|
||||
{
|
||||
JVM_ReleaseJNIEnv(initialEnv);
|
||||
// need to release jvm
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
static JNIEnv*
|
||||
attach_current_thread_impl(SystemJavaVM* jvm)
|
||||
{
|
||||
return JVM_GetJNIEnv();
|
||||
}
|
||||
|
||||
static PRBool
|
||||
detach_current_thread_impl(SystemJavaVM* jvm, JNIEnv* env)
|
||||
{
|
||||
JVM_ReleaseJNIEnv(env);
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
static SystemJavaVM*
|
||||
get_java_vm_impl(JNIEnv* env)
|
||||
{
|
||||
// only one SystemJavaVM for the whole browser, so it doesn't depend on env
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIJVMManager> managerService = do_GetService(kJVMManagerCID, &rv);
|
||||
if (NS_FAILED(rv)) return NULL;
|
||||
SystemJavaVM* jvm = reinterpret_cast<SystemJavaVM*>(managerService.get());
|
||||
return jvm;
|
||||
}
|
||||
|
||||
JS_END_EXTERN_C
|
||||
|
||||
static JSJCallbacks jsj_callbacks = {
|
||||
map_jsj_thread_to_js_context_impl,
|
||||
map_js_context_to_jsj_thread_impl,
|
||||
map_java_object_to_js_object_impl,
|
||||
get_JSPrincipals_from_java_caller_impl,
|
||||
enter_js_from_java_impl,
|
||||
exit_js_impl,
|
||||
NULL, // error_print
|
||||
get_java_wrapper_impl,
|
||||
unwrap_java_wrapper_impl,
|
||||
create_java_vm_impl,
|
||||
destroy_java_vm_impl,
|
||||
attach_current_thread_impl,
|
||||
detach_current_thread_impl,
|
||||
get_java_vm_impl
|
||||
};
|
||||
|
||||
void
|
||||
JVM_InitLCGlue(void)
|
||||
{
|
||||
JSJ_Init(&jsj_callbacks);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/*
|
||||
TODO:Tom Pixley.
|
||||
APIs required from Tom Pixley.
|
||||
o LM_LockJS(errp); Grab the mocha lock before doing any liveconect stuff.
|
||||
This is because layers above JS engine including liveconnect
|
||||
DLL itself are not thread safe.
|
||||
o LM_UnlockJS()
|
||||
o LM_GetMochaEnabled() Check to see if Mocha is enabled.
|
||||
o LM_GetCrippledContext(). Get to a pre-created crippled context. All spontaneous
|
||||
Java calls map into one crippled context.
|
||||
o ET_InitMoja(0) != LM_MOJA_OK: This tells if moja initialization went ok.
|
||||
o LM_GetJSPrincipalsFromJavaCaller : Wrap a nsIPrincipal array object to get back a JSPrincipals data struct.
|
||||
o LM_CanAccessTargetStr This code is used to figure out if access is allowed. It is used during security
|
||||
stack walking. The tricky thing is that we need to set the start frame into
|
||||
TLS before calling this code.
|
||||
Look into nsCSecurityContext::Implies
|
||||
*/
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef lcglue_h___
|
||||
#define lcglue_h___
|
||||
|
||||
#include "prtypes.h"
|
||||
#include "jni.h"
|
||||
#include "jsdbgapi.h"
|
||||
#include "nsError.h"
|
||||
|
||||
#include "nsIJVMThreadManager.h"
|
||||
#include "nsISecurityContext.h"
|
||||
|
||||
/**
|
||||
* JVMContext is maintained as thread local storage. The current thread's
|
||||
* context is accessed by calling GetJVMContext().
|
||||
*/
|
||||
struct JVMContext {
|
||||
JNIEnv *proxyEnv; /* thread local proxy JNI */
|
||||
JSJavaThreadState *jsj_env; /* thread local JavaScript execution env. */
|
||||
};
|
||||
|
||||
JVMContext* GetJVMContext();
|
||||
void JVM_InitLCGlue(void); // in lcglue.cpp
|
||||
|
||||
#endif /* lcglue_h___ */
|
|
@ -1,75 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pierre Phaneuf <pp@ludusdesign.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsIModule.h"
|
||||
#include "nsIGenericFactory.h"
|
||||
#include "nsJVMManager.h"
|
||||
#include "nsJVMConfigManager.h"
|
||||
|
||||
#ifdef XP_UNIX
|
||||
#include "nsJVMConfigManagerUnix.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Note: In revision 1.17 of this file (and earlier) there was a
|
||||
* commented out implementation of nsCJVMManagerFactory, a hand-crafted
|
||||
* implementation of nsIFactory.
|
||||
*/
|
||||
#ifdef XP_UNIX
|
||||
NS_GENERIC_FACTORY_CONSTRUCTOR(nsJVMConfigManagerUnix)
|
||||
#endif
|
||||
NS_GENERIC_AGGREGATED_CONSTRUCTOR(nsJVMManager)
|
||||
|
||||
// The list of components we register
|
||||
static const nsModuleComponentInfo components[] =
|
||||
{
|
||||
{ "JVM Manager Service",
|
||||
NS_JVMMANAGER_CID,
|
||||
"@mozilla.org/oji/jvm-mgr;1",
|
||||
nsJVMManagerConstructor
|
||||
},
|
||||
#ifdef XP_UNIX
|
||||
{ "JVM Config Manager",
|
||||
NS_JVMCONFIGMANAGER_CID,
|
||||
"@mozilla.org/oji/jvm-config-mgr;1",
|
||||
nsJVMConfigManagerUnixConstructor
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
NS_IMPL_NSGETMODULE(nsCJVMManagerModule, components)
|
|
@ -1,70 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is part of the mozilla.org LDAP XPCOM SDK.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Xiaobin Lu <Xiaobin.Lu@eng.Sun.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsCNullSecurityContext.h"
|
||||
#include "nsString.h"
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsCNullSecurityContext, nsISecurityContext)
|
||||
|
||||
NS_IMETHODIMP nsCNullSecurityContext::Implies(const char* target, const char* action, PRBool* bActionAllowed)
|
||||
{
|
||||
/* Avoid security check, returns true always */
|
||||
*bActionAllowed = PR_TRUE;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsCNullSecurityContext::GetOrigin(char* buf, int len)
|
||||
{
|
||||
if (buf == NULL)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
const char origin[] = "file:///";
|
||||
PRInt32 originLen = (PRInt32) (sizeof(origin) - 1);
|
||||
if (len <= originLen) {
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
}
|
||||
// Copy origin
|
||||
memcpy(buf, origin, originLen);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsCNullSecurityContext::GetCertificateID(char* buf, int len)
|
||||
{
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is part of the mozilla.org LDAP XPCOM SDK.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Xiaobin Lu <Xiaobin.Lu@eng.Sun.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#ifndef nsCNullSecurityContext_h___
|
||||
#define nsCNullSecurityContext_h___
|
||||
|
||||
#include "nsISecurityContext.h"
|
||||
|
||||
class nsCNullSecurityContext : public nsISecurityContext
|
||||
{
|
||||
public:
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsISupports
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// from nsISecurityContext:
|
||||
|
||||
/**
|
||||
* Get the security context to be used in LiveConnect.
|
||||
* This is used for JavaScript <--> Java.
|
||||
*
|
||||
* @param target -- Possible target.
|
||||
* @param action -- Possible action on the target.
|
||||
* @return -- NS_OK if the target and action is permitted
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD Implies(const char* target, const char* action,
|
||||
PRBool* bActionAllowed);
|
||||
|
||||
/**
|
||||
* Get the origin associated with the context.
|
||||
*
|
||||
* @param buf -- Result buffer (managed by the caller.)
|
||||
* @param len -- Buffer length.
|
||||
* @return -- NS_OK if the codebase string was obtained.
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD GetOrigin(char* buf, int len);
|
||||
|
||||
/**
|
||||
* Get the certificate associated with the context.
|
||||
*
|
||||
* @param buf -- Result buffer (managed by the caller.)
|
||||
* @param len -- Buffer length.
|
||||
* @return -- NS_OK if the codebase string was obtained.
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD GetCertificateID(char* buf, int len);
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// from nsISecureJNI:
|
||||
|
||||
nsCNullSecurityContext() { }
|
||||
};
|
||||
|
||||
#endif // CSecurityContext_h___
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,257 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
/*
|
||||
*
|
||||
* It contains the implementation providing nsISecurityCOntext XP-COM interface.
|
||||
* This file snapshots a JS frame before entering into java.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "prtypes.h"
|
||||
#include "jscntxt.h"
|
||||
#include "jsdbgapi.h"
|
||||
#include "nsCSecurityContext.h"
|
||||
#include "nsIScriptContext.h"
|
||||
#include "jvmmgr.h"
|
||||
#include "jsjava.h"
|
||||
|
||||
// For GetOrigin()
|
||||
|
||||
#include "nsIScriptSecurityManager.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsCRT.h"
|
||||
|
||||
#include "nsTraceRefcnt.h"
|
||||
|
||||
static NS_DEFINE_IID(kISecurityContextIID, NS_ISECURITYCONTEXT_IID);
|
||||
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// nsISupports
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsCSecurityContext, nsISecurityContext)
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// nsISecurityContext
|
||||
|
||||
NS_METHOD
|
||||
nsCSecurityContext::Implies(const char* target, const char* action, PRBool *bAllowedAccess)
|
||||
{
|
||||
if(!bAllowedAccess) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
if(!nsCRT::strcmp(target,"UniversalBrowserRead")) {
|
||||
// XXX we lie to the applet and say we have UniversalBrowserRead
|
||||
// even if we don't so that we can bypass the Java plugin's broken
|
||||
// origin checks. Note that this only affects the plugin's perception
|
||||
// of our script's capabilities, and has no bearing on the script's
|
||||
// real capabilities. This code should be changed to assign
|
||||
// |m_HasUniversalBrowserReadCapability| into the out parameter
|
||||
// once Java's origin checking code is fixed.
|
||||
// See bug 146458 for details.
|
||||
if (JSJ_IsJSCallApplet()) {
|
||||
*bAllowedAccess = PR_TRUE;
|
||||
}
|
||||
else {
|
||||
*bAllowedAccess = m_HasUniversalBrowserReadCapability;
|
||||
}
|
||||
} else if(!nsCRT::strcmp(target,"UniversalJavaPermission")) {
|
||||
*bAllowedAccess = m_HasUniversalJavaCapability;
|
||||
} else {
|
||||
*bAllowedAccess = PR_FALSE;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
NS_METHOD
|
||||
nsCSecurityContext::GetOrigin(char* buf, int buflen)
|
||||
{
|
||||
if (!m_pPrincipal) {
|
||||
// Get the Script Security Manager.
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv) || !secMan) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
secMan->GetSubjectPrincipal(getter_AddRefs(m_pPrincipal));
|
||||
if (!m_pPrincipal) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
nsXPIDLCString origin;
|
||||
m_pPrincipal->GetOrigin(getter_Copies(origin));
|
||||
|
||||
PRInt32 originlen = origin.Length();
|
||||
if (origin.IsEmpty() || originlen > buflen - 1) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
// Copy the string into to user supplied buffer. Is there a better
|
||||
// way to do this?
|
||||
|
||||
memcpy(buf, origin, originlen);
|
||||
buf[originlen] = nsnull; // Gotta terminate it.
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsCSecurityContext::GetCertificateID(char* buf, int buflen)
|
||||
{
|
||||
nsCOMPtr<nsIPrincipal> principal;
|
||||
|
||||
// Get the Script Security Manager.
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv) || !secMan) return NS_ERROR_FAILURE;
|
||||
|
||||
secMan->GetSubjectPrincipal(getter_AddRefs(principal));
|
||||
if (!principal) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsCAutoString certificate;
|
||||
principal->GetFingerprint(certificate);
|
||||
|
||||
PRInt32 certlen = certificate.Length();
|
||||
if (buflen <= certlen) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
memcpy(buf, certificate.get(), certlen);
|
||||
buf[certlen] = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsCSecurityContext:
|
||||
extern PRUintn tlsIndex3_g;
|
||||
|
||||
nsCSecurityContext::nsCSecurityContext(JSContext* cx)
|
||||
: m_pJStoJavaFrame(NULL), m_pJSCX(cx),
|
||||
m_pPrincipal(NULL),
|
||||
m_HasUniversalJavaCapability(PR_FALSE),
|
||||
m_HasUniversalBrowserReadCapability(PR_FALSE)
|
||||
{
|
||||
MOZ_COUNT_CTOR(nsCSecurityContext);
|
||||
|
||||
// Get the Script Security Manager.
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv) || !secMan) return;
|
||||
|
||||
|
||||
nsCOMPtr<nsIPrincipal> principal;
|
||||
if (NS_FAILED(secMan->GetSubjectPrincipal(getter_AddRefs(principal))))
|
||||
// return;
|
||||
; // Don't return here because the security manager returns
|
||||
// NS_ERROR_FAILURE when there is no subject principal. In
|
||||
// that case we are not done.
|
||||
|
||||
nsCOMPtr<nsIPrincipal> sysprincipal;
|
||||
if (NS_FAILED(secMan->GetSystemPrincipal(getter_AddRefs(sysprincipal))))
|
||||
return;
|
||||
|
||||
// Do early evaluation of "UniversalJavaPermission" capability.
|
||||
|
||||
PRBool equals;
|
||||
if (!principal ||
|
||||
NS_SUCCEEDED(principal->Equals(sysprincipal, &equals)) && equals) {
|
||||
// We have native code or the system principal: just allow general access
|
||||
m_HasUniversalBrowserReadCapability = PR_TRUE;
|
||||
m_HasUniversalJavaCapability = PR_TRUE;
|
||||
}
|
||||
else {
|
||||
// Otherwise, check with the js security manager.
|
||||
secMan->IsCapabilityEnabled("UniversalBrowserRead",&m_HasUniversalBrowserReadCapability);
|
||||
secMan->IsCapabilityEnabled("UniversalJavaPermission",&m_HasUniversalJavaCapability);
|
||||
}
|
||||
}
|
||||
|
||||
nsCSecurityContext::nsCSecurityContext(nsIPrincipal *principal)
|
||||
: m_pJStoJavaFrame(NULL), m_pJSCX(NULL),
|
||||
m_pPrincipal(principal),
|
||||
m_HasUniversalJavaCapability(PR_FALSE),
|
||||
m_HasUniversalBrowserReadCapability(PR_FALSE)
|
||||
{
|
||||
MOZ_COUNT_CTOR(nsCSecurityContext);
|
||||
|
||||
// Get the Script Security Manager.
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsIScriptSecurityManager> secMan =
|
||||
do_GetService(NS_SCRIPTSECURITYMANAGER_CONTRACTID, &rv);
|
||||
if (NS_FAILED(rv) || !secMan) return;
|
||||
|
||||
nsCOMPtr<nsIPrincipal> sysprincipal;
|
||||
if (NS_FAILED(secMan->GetSystemPrincipal(getter_AddRefs(sysprincipal))))
|
||||
return;
|
||||
|
||||
// Do early evaluation of "UniversalJavaPermission" capability.
|
||||
|
||||
if (!m_pPrincipal || m_pPrincipal == sysprincipal) {
|
||||
// We have native code or the system principal: just allow general access
|
||||
m_HasUniversalBrowserReadCapability = PR_TRUE;
|
||||
m_HasUniversalJavaCapability = PR_TRUE;
|
||||
}
|
||||
else {
|
||||
// Otherwise, check with the js security manager.
|
||||
secMan->IsCapabilityEnabled("UniversalBrowserRead",&m_HasUniversalBrowserReadCapability);
|
||||
secMan->IsCapabilityEnabled("UniversalJavaPermission",&m_HasUniversalJavaCapability);
|
||||
}
|
||||
}
|
||||
|
||||
nsCSecurityContext::~nsCSecurityContext()
|
||||
{
|
||||
MOZ_COUNT_DTOR(nsCSecurityContext);
|
||||
}
|
||||
|
|
@ -1,117 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
*
|
||||
* It contains the class definition to implement nsISecurityContext XP-COM interface.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef nsCSecurityContext_h___
|
||||
#define nsCSecurityContext_h___
|
||||
|
||||
#include "jscntxt.h"
|
||||
#include "jsdbgapi.h"
|
||||
#include "nsISecurityContext.h"
|
||||
#include "nsIPrincipal.h"
|
||||
#include "nsCOMPtr.h"
|
||||
|
||||
struct JSContext;
|
||||
|
||||
/**
|
||||
* nsCSecurityContext implements nsISecurityContext interface for navigator.
|
||||
* This is used by a JVM to implement netscape.javascript.JSObject functionality.
|
||||
*/
|
||||
class nsCSecurityContext :public nsISecurityContext {
|
||||
public:
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsISupports
|
||||
|
||||
NS_DECL_ISUPPORTS
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsISecurityContext:
|
||||
|
||||
/**
|
||||
* Get the security context to be used in LiveConnect.
|
||||
* This is used for JavaScript <--> Java.
|
||||
*
|
||||
* @param target -- Possible target.
|
||||
* @param action -- Possible action on the target.
|
||||
* @return -- NS_OK if the target and action is permitted on the security context.
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD Implies(const char* target, const char* action, PRBool *bAllowedAccess);
|
||||
|
||||
/**
|
||||
* Get the code base of the subject (caller).
|
||||
*
|
||||
* @param buf -- Result buffer.
|
||||
* @param len -- Buffer length.
|
||||
* @return -- NS_OK if the codebase string was obtained.
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD GetOrigin(char* buf, int len);
|
||||
|
||||
/**
|
||||
* Get the certificate thumbprint of the subject (caller).
|
||||
*
|
||||
* @param buf -- Result buffer.
|
||||
* @param len -- Buffer length.
|
||||
* @return -- NS_OK if the codebase string was obtained.
|
||||
* -- NS_FALSE otherwise.
|
||||
*/
|
||||
NS_IMETHOD GetCertificateID(char* buf, int len);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsCSecurityContext:
|
||||
|
||||
nsCSecurityContext(JSContext* cx);
|
||||
nsCSecurityContext(nsIPrincipal* principal);
|
||||
virtual ~nsCSecurityContext(void);
|
||||
|
||||
protected:
|
||||
JSStackFrame *m_pJStoJavaFrame;
|
||||
JSContext *m_pJSCX;
|
||||
private:
|
||||
nsCOMPtr<nsIPrincipal> m_pPrincipal;
|
||||
PRBool m_HasUniversalJavaCapability;
|
||||
PRBool m_HasUniversalBrowserReadCapability;
|
||||
};
|
||||
|
||||
#endif // nsCSecurityContext_h___
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,119 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pete Zha <pete.zha@sun.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsJVMConfigManager.h"
|
||||
|
||||
NS_IMPL_ISUPPORTS1(nsJVMConfig, nsIJVMConfig)
|
||||
|
||||
nsJVMConfig::nsJVMConfig(const nsAString& aVersion, const nsAString& aType,
|
||||
const nsAString& aOS, const nsAString& aArch,
|
||||
nsIFile* aPath, nsIFile* aMozillaPluginPath,
|
||||
const nsAString& aDescription) :
|
||||
mVersion(aVersion),
|
||||
mType(aType),
|
||||
mOS(aOS),
|
||||
mArch(aArch),
|
||||
mPath(aPath),
|
||||
mMozillaPluginPath(aMozillaPluginPath),
|
||||
mDescription(aDescription)
|
||||
{
|
||||
}
|
||||
|
||||
nsJVMConfig::~nsJVMConfig()
|
||||
{
|
||||
}
|
||||
|
||||
/* readonly attribute AString version; */
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetVersion(nsAString & aVersion)
|
||||
{
|
||||
aVersion = mVersion;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute AString type; */
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetType(nsAString & aType)
|
||||
{
|
||||
aType = mType;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute AString os; */
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetOS(nsAString & aOS)
|
||||
{
|
||||
aOS = mOS;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute AString arch; */
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetArch(nsAString & aArch)
|
||||
{
|
||||
aArch = mArch;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetPath(nsIFile** aPath)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPath);
|
||||
|
||||
*aPath = mPath;
|
||||
NS_IF_ADDREF(*aPath);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetMozillaPluginPath(nsIFile** aMozillaPluginPath)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aMozillaPluginPath);
|
||||
|
||||
*aMozillaPluginPath = mMozillaPluginPath;
|
||||
NS_IF_ADDREF(*aMozillaPluginPath);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/* readonly attribute AString description; */
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfig::GetDescription(nsAString & aDescription)
|
||||
{
|
||||
aDescription = mDescription;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pete Zha <pete.zha@sun.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsJVMConfigManager_h___
|
||||
#define nsJVMConfigManager_h___
|
||||
|
||||
#include "nsIJVMConfigManager.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIFile.h"
|
||||
|
||||
class nsJVMConfig : public nsIJVMConfig
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIJVMCONFIG
|
||||
|
||||
nsJVMConfig(const nsAString& aVersion, const nsAString& aType,
|
||||
const nsAString& aOS, const nsAString& aArch,
|
||||
nsIFile* aPath, nsIFile* aMozillaPluginPath,
|
||||
const nsAString& aDescription);
|
||||
|
||||
virtual ~nsJVMConfig();
|
||||
/* additional members */
|
||||
protected:
|
||||
nsString mVersion;
|
||||
nsString mType;
|
||||
nsString mOS;
|
||||
nsString mArch;
|
||||
nsCOMPtr<nsIFile> mPath;
|
||||
nsCOMPtr<nsIFile> mMozillaPluginPath;
|
||||
nsString mDescription;
|
||||
};
|
||||
|
||||
#endif // nsJVMConfigManager_h___
|
|
@ -1,664 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pete Zha <pete.zha@sun.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "nsJVMConfigManagerUnix.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsDirectoryServiceDefs.h"
|
||||
#include "nsIPrefService.h"
|
||||
#include "nsIPrefBranch.h"
|
||||
#include "nsReadableUtils.h"
|
||||
#include "nsIMutableArray.h"
|
||||
#include "prprf.h"
|
||||
#include "nsNetCID.h"
|
||||
#include "nsIHttpProtocolHandler.h"
|
||||
#include "nsIVariant.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
#include <stdio.h> /* OSF/1 requires this before grp.h, so put it first */
|
||||
#include <unistd.h>
|
||||
|
||||
#define NS_COMPILER_GNUC3 defined(__GXX_ABI_VERSION) && \
|
||||
(__GXX_ABI_VERSION >= 102) /* G++ V3 ABI */
|
||||
|
||||
// Implementation of nsJVMConfigManagerUnix
|
||||
NS_IMPL_ISUPPORTS1(nsJVMConfigManagerUnix, nsIJVMConfigManager)
|
||||
|
||||
nsJVMConfigManagerUnix::nsJVMConfigManagerUnix()
|
||||
{
|
||||
InitJVMConfigList();
|
||||
}
|
||||
|
||||
static PRBool
|
||||
FreeJVMConfig(nsHashKey *aKey, void *aData, void* aClosure)
|
||||
{
|
||||
nsJVMConfig* config = static_cast<nsJVMConfig *>(aData);
|
||||
|
||||
NS_IF_RELEASE(config);
|
||||
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
static PRBool
|
||||
AppendJVMConfig(nsHashKey *aKey, void *aData, void* aClosure)
|
||||
{
|
||||
nsJVMConfig* config = static_cast<nsJVMConfig *>(aData);
|
||||
nsIMutableArray *array = static_cast<nsIMutableArray *>(aClosure);
|
||||
NS_ENSURE_TRUE(config && array, PR_FALSE);
|
||||
|
||||
array->AppendElement(config, PR_FALSE);
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
nsJVMConfigManagerUnix::~nsJVMConfigManagerUnix()
|
||||
{
|
||||
ClearJVMConfigList();
|
||||
}
|
||||
|
||||
void
|
||||
nsJVMConfigManagerUnix::ClearJVMConfigList()
|
||||
{
|
||||
if (mJVMConfigList.Count() > 0) {
|
||||
mJVMConfigList.Reset(FreeJVMConfig);
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfigManagerUnix::GetJVMConfigList(nsIArray **_retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
|
||||
ClearJVMConfigList();
|
||||
InitJVMConfigList();
|
||||
|
||||
nsCOMPtr<nsIMutableArray> array =
|
||||
do_CreateInstance(NS_ARRAY_CONTRACTID);
|
||||
NS_ENSURE_STATE(array);
|
||||
|
||||
if (mJVMConfigList.Count() > 0) {
|
||||
mJVMConfigList.Enumerate(AppendJVMConfig,
|
||||
static_cast<void *>(array));
|
||||
*_retval = static_cast<nsIArray *>(array);
|
||||
NS_IF_ADDREF(*_retval);
|
||||
} else
|
||||
*_retval = nsnull;
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfigManagerUnix::InitJVMConfigList()
|
||||
{
|
||||
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
NS_ENSURE_TRUE(prefs, NS_ERROR_FAILURE);
|
||||
|
||||
nsCOMPtr<nsILocalFile> globalFile;
|
||||
prefs->GetComplexValue("java.global_java_version_file",
|
||||
NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(globalFile));
|
||||
|
||||
nsCOMPtr<nsILocalFile> privateFile;
|
||||
prefs->GetComplexValue("java.private_java_version_file",
|
||||
NS_GET_IID(nsILocalFile),
|
||||
getter_AddRefs(privateFile));
|
||||
|
||||
nsCOMPtr<nsILineInputStream> globalStream;
|
||||
nsresult rv = GetLineInputStream(globalFile, getter_AddRefs(globalStream));
|
||||
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) || rv == NS_ERROR_FILE_NOT_FOUND, rv);
|
||||
|
||||
nsCOMPtr<nsILineInputStream> privateStream;
|
||||
rv = GetLineInputStream(privateFile, getter_AddRefs(privateStream));
|
||||
NS_ENSURE_TRUE(NS_SUCCEEDED(rv) || rv == NS_ERROR_FILE_NOT_FOUND, rv);
|
||||
|
||||
rv = InitJVMConfigList(globalStream, privateStream);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Search for a Java installation in the default install location.
|
||||
return SearchDefault();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsJVMConfigManagerUnix::SetCurrentJVMConfig(nsIJVMConfig* aJVMConfig)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aJVMConfig);
|
||||
|
||||
nsCOMPtr<nsIFile> srcFile;
|
||||
nsresult rv = aJVMConfig->GetMozillaPluginPath(getter_AddRefs(srcFile));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIFile> pluginDir;
|
||||
rv = NS_GetSpecialDirectory(NS_APP_PLUGINS_DIR, getter_AddRefs(pluginDir));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool hasPermission = PR_FALSE;
|
||||
pluginDir->IsWritable(&hasPermission);
|
||||
if (!hasPermission) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsAutoString fileName;
|
||||
srcFile->GetLeafName(fileName);
|
||||
nsCOMPtr<nsILocalFile> destFile(do_QueryInterface(pluginDir));
|
||||
if (TestExists(destFile, fileName))
|
||||
destFile->Remove(PR_FALSE);
|
||||
|
||||
nsCAutoString srcFileName;
|
||||
rv = srcFile->GetNativePath(srcFileName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCAutoString destFileName;
|
||||
destFile->GetNativePath(destFileName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRInt16 result = 0;
|
||||
result = symlink(srcFileName.get(), destFileName.get());
|
||||
|
||||
return result >= 0 ? NS_OK : NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::InitJVMConfigList(nsILineInputStream* aGlobal,
|
||||
nsILineInputStream* aPrivate)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
if (aGlobal) {
|
||||
rv = ParseStream(aGlobal);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
if (aPrivate) {
|
||||
rv = ParseStream(aPrivate);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::GetLineInputStream(nsIFile* aFile,
|
||||
nsILineInputStream** _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCOMPtr<nsILocalFile> file(do_QueryInterface(aFile, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIFileInputStream>
|
||||
fileStream(do_CreateInstance(NS_LOCALFILEINPUTSTREAM_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = fileStream->Init(file, -1, -1, PR_FALSE);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsILineInputStream> lineStream(do_QueryInterface(fileStream, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
*_retval = lineStream;
|
||||
NS_IF_ADDREF(*_retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::ParseStream(nsILineInputStream* aStream)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aStream);
|
||||
|
||||
PRBool notEOF = PR_TRUE;
|
||||
|
||||
nsAutoString lineBuffer;
|
||||
do {
|
||||
nsAutoString line;
|
||||
nsCAutoString cLine;
|
||||
nsresult rv = aStream->ReadLine(cLine, ¬EOF);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
CopyASCIItoUTF16(cLine, line);
|
||||
|
||||
PRInt32 slashOffset, equalsOffset;
|
||||
slashOffset = line.FindChar('\\');
|
||||
equalsOffset = line.FindChar('=');
|
||||
|
||||
// Since one java installation contains several key/value pair
|
||||
// and they are separeted by '\'. We need to join them together
|
||||
// to a single line and then parse it.
|
||||
if (slashOffset != kNotFound && equalsOffset != kNotFound) {
|
||||
// This means the line not finished, we need to append it to buffer
|
||||
lineBuffer.Append(Substring(line, 0, slashOffset));
|
||||
} else if (slashOffset == kNotFound && equalsOffset != kNotFound) {
|
||||
// This should the last one of a line. Append it to line
|
||||
// and then we can Parse it and get necessary information
|
||||
lineBuffer.Append(line);
|
||||
ParseLine(lineBuffer);
|
||||
} else {
|
||||
// Start of a new line
|
||||
lineBuffer.Truncate();
|
||||
}
|
||||
} while (notEOF);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::ParseLine(nsAString& aLine)
|
||||
{
|
||||
#if (NS_COMPILER_GNUC3)
|
||||
nsAutoString compiler;
|
||||
GetValueFromLine(aLine, "compiler", compiler);
|
||||
|
||||
NS_ENSURE_TRUE(compiler.Find("gcc32") != kNotFound, NS_OK);
|
||||
#endif
|
||||
|
||||
nsAutoString version;
|
||||
GetValueFromLine(aLine, "version", version);
|
||||
|
||||
nsAutoString type;
|
||||
GetValueFromLine(aLine, "type", type);
|
||||
|
||||
nsAutoString os;
|
||||
GetValueFromLine(aLine, "os", os);
|
||||
|
||||
nsAutoString arch;
|
||||
GetValueFromLine(aLine, "arch", arch);
|
||||
|
||||
nsAutoString pathStr;
|
||||
GetValueFromLine(aLine, "path", pathStr);
|
||||
|
||||
nsAutoString mozillaPluginPath;
|
||||
GetMozillaPluginPath(aLine, mozillaPluginPath);
|
||||
|
||||
NS_ENSURE_TRUE(!mozillaPluginPath.IsEmpty(), NS_OK);
|
||||
|
||||
nsAutoString description;
|
||||
GetValueFromLine(aLine, "description", description);
|
||||
description.Trim("\"");
|
||||
|
||||
// Test whether the plugin file is existing.
|
||||
nsresult rv = NS_OK;
|
||||
nsCOMPtr<nsILocalFile>
|
||||
testPath(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsAutoString testPathStr(pathStr);
|
||||
if (type.EqualsLiteral("jdk"))
|
||||
testPathStr.AppendLiteral("/jre");
|
||||
|
||||
testPathStr.Append(mozillaPluginPath);
|
||||
testPath->InitWithPath(testPathStr);
|
||||
|
||||
// If the file doesn't exists, we just return NS_OK
|
||||
PRBool exists;
|
||||
testPath->Exists(&exists);
|
||||
NS_ENSURE_TRUE(exists, NS_OK);
|
||||
|
||||
nsCOMPtr<nsIFile> mozPluginPath(do_QueryInterface(testPath, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsILocalFile>
|
||||
path(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
|
||||
path->InitWithPath(pathStr);
|
||||
|
||||
// We use java home as the key because one home
|
||||
// will contain only one java installation.
|
||||
// This could make sure we don't duplicate the config info in the list
|
||||
nsStringKey key(pathStr);
|
||||
nsJVMConfig* config = static_cast<nsJVMConfig *>
|
||||
(mJVMConfigList.Get(&key));
|
||||
|
||||
// Only create it and add the config to list if it doesn't exist.
|
||||
if (!config) {
|
||||
config = new nsJVMConfig(version, type, os, arch, path,
|
||||
mozPluginPath, description);
|
||||
NS_ENSURE_TRUE(config, NS_ERROR_OUT_OF_MEMORY);
|
||||
mJVMConfigList.Put(&key, static_cast<void *>(config));
|
||||
NS_ADDREF(config);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::GetMozillaPluginPath(nsAString& aLine,
|
||||
nsAString& _retval)
|
||||
{
|
||||
nsCAutoString agentVersion;
|
||||
nsresult rv = GetAgentVersion(agentVersion);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Get mozilla plugin path from key
|
||||
// mozilla<version>.plugin.path
|
||||
// <version> should like this: "1.2", "1.3"
|
||||
nsCAutoString key("mozilla");
|
||||
key.Append(agentVersion);
|
||||
key.Append(".plugin.path");
|
||||
|
||||
GetValueFromLine(aLine, key.get(), _retval);
|
||||
|
||||
if (!_retval.IsEmpty()) return NS_OK;
|
||||
|
||||
nsAutoString versionStr;
|
||||
rv = GetNSVersion(versionStr);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
key.AssignWithConversion(versionStr);
|
||||
key.Append(".plugin.path");
|
||||
|
||||
GetValueFromLine(aLine, key.get(), _retval);
|
||||
|
||||
// Fall back to use ns610.plugin.path if _retval is still empty.
|
||||
if (_retval.IsEmpty())
|
||||
GetValueFromLine(aLine, "ns610.plugin.path", _retval);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::GetAgentVersion(nsCAutoString& _retval)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCOMPtr<nsIHttpProtocolHandler> http = do_GetService(NS_NETWORK_PROTOCOL_CONTRACTID_PREFIX "http", &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCAutoString userAgent;
|
||||
rv = http->GetUserAgent(userAgent);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
PRInt32 rvOffset = userAgent.Find("rv:");
|
||||
|
||||
if (rvOffset != kNotFound)
|
||||
_retval.Assign(Substring(userAgent, rvOffset + 3, 3));
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::GetAgentVersion(float* _retval)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_retval);
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCAutoString agentVersion;
|
||||
GetAgentVersion(agentVersion);
|
||||
nsCOMPtr <nsIWritableVariant> p =
|
||||
do_CreateInstance(NS_VARIANT_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = p->SetAsACString(agentVersion);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return p->GetAsFloat(_retval);
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsJVMConfigManagerUnix::GetValueFromLine(nsAString& aLine, const char* aKey,
|
||||
nsAString& _retval)
|
||||
{
|
||||
_retval.Truncate();
|
||||
|
||||
nsAutoString line(aLine);
|
||||
// Find the offset of the given key in the line
|
||||
PRInt32 keyOffset = line.Find(aKey);
|
||||
|
||||
// make sure the key exists in the line.
|
||||
NS_ENSURE_TRUE(keyOffset != kNotFound, PR_FALSE);
|
||||
|
||||
// Find '=' right after the key
|
||||
PRInt32 equalsOffset = aLine.FindChar('=', keyOffset);
|
||||
NS_ENSURE_TRUE(equalsOffset != kNotFound, PR_FALSE);
|
||||
|
||||
// Find '|' which is the terminal of a pair of key/value
|
||||
PRInt32 lineOffset = aLine.FindChar('|', equalsOffset);
|
||||
lineOffset = lineOffset != kNotFound ? lineOffset : aLine.Length();
|
||||
|
||||
// OK, we separate the value from the line between '=' and '|'
|
||||
nsAutoString value(Substring(aLine,
|
||||
equalsOffset + 1,
|
||||
lineOffset - equalsOffset -1));
|
||||
|
||||
// Removing the leading/trailing spaces
|
||||
value.Trim(" ");
|
||||
_retval = value;
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::GetNSVersion(nsAString& _retval)
|
||||
{
|
||||
float version;
|
||||
nsresult rv = GetAgentVersion(&version);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Check mozilla's version
|
||||
// ns7 is for mozilla1.3 or later
|
||||
// ns610 is for earlier version of mozilla.
|
||||
if (version >= 1.3) {
|
||||
_retval.AssignLiteral("ns7");
|
||||
} else {
|
||||
_retval.AssignLiteral("ns610");
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::SearchDefault()
|
||||
{
|
||||
#ifdef SPARC
|
||||
const char* defaultLocationName = "java.default_java_location_solaris";
|
||||
#else
|
||||
const char* defaultLocationName = "java.default_java_location_others";
|
||||
#endif
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
NS_ENSURE_TRUE(prefs, NS_ERROR_FAILURE);
|
||||
|
||||
nsXPIDLCString defaultLocationXPIDLValue;
|
||||
prefs->GetCharPref(defaultLocationName,
|
||||
getter_Copies(defaultLocationXPIDLValue));
|
||||
|
||||
NS_ConvertUTF8toUTF16 defaultLocation(defaultLocationXPIDLValue);
|
||||
|
||||
#ifdef SPARC
|
||||
// On Solaris, the default location is the java home
|
||||
return AddDirectory(defaultLocation);
|
||||
#else
|
||||
// On Linux and other platform,
|
||||
// the default location can contain multiple java installations
|
||||
return SearchDirectory(defaultLocation);
|
||||
#endif
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::SearchDirectory(nsAString& aDirName)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsCOMPtr<nsILocalFile>
|
||||
localDir(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = localDir->InitWithPath(aDirName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIFile> dir(do_QueryInterface(localDir, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsISimpleEnumerator> entries;
|
||||
rv = dir->GetDirectoryEntries(getter_AddRefs(entries));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
PRBool hasMoreElements;
|
||||
entries->HasMoreElements(&hasMoreElements);
|
||||
while (hasMoreElements) {
|
||||
nsCOMPtr<nsISupports> next;
|
||||
rv = entries->GetNext(getter_AddRefs(next));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIFile> entry(do_QueryInterface(next, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
AddDirectory(entry);
|
||||
entries->HasMoreElements(&hasMoreElements);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::AddDirectory(nsIFile* aHomeDir)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aHomeDir);
|
||||
nsAutoString homeDirName;
|
||||
aHomeDir->GetPath(homeDirName);
|
||||
return AddDirectory(homeDirName);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsJVMConfigManagerUnix::AddDirectory(nsAString& aHomeDirName)
|
||||
{
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
nsAutoString type;
|
||||
nsAutoString mozillaPluginPath;
|
||||
|
||||
nsCOMPtr<nsILocalFile>
|
||||
testPath(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
testPath->InitWithPath(aHomeDirName);
|
||||
testPath->Append(NS_LITERAL_STRING("jre"));
|
||||
|
||||
PRBool exists;
|
||||
testPath->Exists(&exists);
|
||||
if (exists) {
|
||||
type.AssignLiteral("jdk");
|
||||
} else {
|
||||
type.AssignLiteral("jre");
|
||||
testPath->InitWithPath(aHomeDirName);
|
||||
}
|
||||
|
||||
testPath->Append(NS_LITERAL_STRING("plugin"));
|
||||
|
||||
// Get Arch. "sparc" or "i386"
|
||||
nsAutoString arch;
|
||||
NS_ENSURE_TRUE(TestArch(testPath, arch), NS_OK);
|
||||
|
||||
// Get NS Version. "ns610" or "ns7"
|
||||
nsAutoString nsVersion;
|
||||
NS_ENSURE_TRUE(TestNSVersion(testPath, nsVersion), NS_OK);
|
||||
|
||||
nsCOMPtr<nsIPrefBranch> prefs(do_GetService(NS_PREFSERVICE_CONTRACTID));
|
||||
NS_ENSURE_TRUE(prefs, NS_ERROR_FAILURE);
|
||||
|
||||
nsCAutoString javaLibName("java.java_plugin_library_name");
|
||||
nsXPIDLCString javaLibNameXPIDLValue;
|
||||
prefs->GetCharPref(javaLibName.get(),
|
||||
getter_Copies(javaLibNameXPIDLValue));
|
||||
|
||||
char* temp = PR_GetLibraryName(nsnull, javaLibNameXPIDLValue.get());
|
||||
nsCAutoString pluginFileName(temp);
|
||||
testPath->AppendNative(pluginFileName);
|
||||
PR_FreeLibraryName(temp);
|
||||
|
||||
// If the plugin file doesn't exist, we just return NS_OK
|
||||
testPath->Exists(&exists);
|
||||
NS_ENSURE_TRUE(exists, NS_OK);
|
||||
|
||||
nsCOMPtr<nsIFile> mozPluginPath(do_QueryInterface(testPath, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsILocalFile>
|
||||
path(do_CreateInstance(NS_LOCAL_FILE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
path->InitWithPath(aHomeDirName);
|
||||
|
||||
nsAutoString version;
|
||||
path->GetLeafName(version);
|
||||
|
||||
nsStringKey key(aHomeDirName);
|
||||
nsJVMConfig* config = static_cast<nsJVMConfig *>
|
||||
(mJVMConfigList.Get(&key));
|
||||
if (!config) {
|
||||
config = new nsJVMConfig(version, type, EmptyString(), arch, path,
|
||||
mozPluginPath, EmptyString());
|
||||
NS_ENSURE_TRUE(config, NS_ERROR_OUT_OF_MEMORY);
|
||||
mJVMConfigList.Put(&key, static_cast<void *>(config));
|
||||
NS_ADDREF(config);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsJVMConfigManagerUnix::TestArch(nsILocalFile* aPluginPath, nsAString& aArch)
|
||||
{
|
||||
#ifdef SPARC
|
||||
aArch.AssignLiteral("sparc");
|
||||
#else
|
||||
aArch.AssignLiteral("i386");
|
||||
#endif
|
||||
return TestExists(aPluginPath, aArch);
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsJVMConfigManagerUnix::TestNSVersion(nsILocalFile* aArchPath,
|
||||
nsAString& aNSVersion)
|
||||
{
|
||||
nsAutoString versionStr;
|
||||
nsresult rv = GetNSVersion(versionStr);
|
||||
NS_ENSURE_SUCCESS(rv, PR_FALSE);
|
||||
|
||||
aNSVersion.Assign(versionStr);
|
||||
#if (NS_COMPILER_GNUC3)
|
||||
aNSVersion.AppendLiteral("-gcc32");
|
||||
#endif
|
||||
return TestExists(aArchPath, aNSVersion);
|
||||
}
|
||||
|
||||
PRBool
|
||||
nsJVMConfigManagerUnix::TestExists(nsILocalFile* aBaseDir, nsAString& aSubName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aBaseDir);
|
||||
|
||||
aBaseDir->Append(aSubName);
|
||||
PRBool exists;
|
||||
aBaseDir->Exists(&exists);
|
||||
|
||||
return exists;
|
||||
}
|
||||
|
|
@ -1,147 +0,0 @@
|
|||
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Sun Microsystems.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2003
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Pete Zha <pete.zha@sun.com> (original author)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsJVMConfigManagerUnix_h___
|
||||
#define nsJVMConfigManagerUnix_h___
|
||||
|
||||
#include "nsJVMConfigManager.h"
|
||||
#include "nsString.h"
|
||||
#include "nsILineInputStream.h"
|
||||
#include "nsHashtable.h"
|
||||
#include "nsIFile.h"
|
||||
#include "nsILocalFile.h"
|
||||
#include "nsIFileStreams.h"
|
||||
|
||||
class nsJVMConfigManagerUnix : public nsIJVMConfigManager
|
||||
{
|
||||
public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSIJVMCONFIGMANAGER
|
||||
|
||||
nsJVMConfigManagerUnix();
|
||||
virtual ~nsJVMConfigManagerUnix();
|
||||
|
||||
protected:
|
||||
nsresult InitJVMConfigList();
|
||||
|
||||
void ClearJVMConfigList();
|
||||
|
||||
nsresult InitJVMConfigList(nsILineInputStream* aGlobal,
|
||||
nsILineInputStream* aPrivate);
|
||||
|
||||
/**
|
||||
* Parse a stream for information about Java installation(s).
|
||||
*/
|
||||
nsresult ParseStream(nsILineInputStream* aStream);
|
||||
|
||||
/**
|
||||
* Parse a line for information about a Java installation, and ensure its
|
||||
* JVMConfig is in our JVMConfigList."
|
||||
* A line looks like this:
|
||||
* "version=1.4.2 | type=jre | os=linux | arch=i386 | ......"
|
||||
*/
|
||||
|
||||
nsresult ParseLine(nsAString& aLine);
|
||||
|
||||
/**
|
||||
* Search for Java installations in the default location.
|
||||
*/
|
||||
nsresult SearchDefault();
|
||||
|
||||
/**
|
||||
* Search a specific directory to see if there are Java installations.
|
||||
*/
|
||||
nsresult SearchDirectory(nsAString& aDirName);
|
||||
|
||||
/**
|
||||
* Add a directory to the Java configuration list if
|
||||
* it contains a java installation.
|
||||
*/
|
||||
nsresult AddDirectory(nsIFile* aHomeDir);
|
||||
|
||||
nsresult AddDirectory(nsAString& aHomeDirName);
|
||||
|
||||
/**
|
||||
* Get a value by specific key from the line. A line should look like this:
|
||||
* key=value | key2=value2 | key3=value3
|
||||
* Please see the proposal in bug 185000 for more detail about the format.
|
||||
*/
|
||||
static PRBool GetValueFromLine(nsAString& aLine, const char* aKey,
|
||||
nsAString& _retval);
|
||||
|
||||
static nsresult GetLineInputStream(nsIFile* aFile,
|
||||
nsILineInputStream** _retval);
|
||||
|
||||
/**
|
||||
* Get value of mozilla<version>.plugin.path from a line
|
||||
*/
|
||||
static nsresult GetMozillaPluginPath(nsAString& aLine, nsAString& _retval);
|
||||
|
||||
/**
|
||||
* Get agent version by string
|
||||
*/
|
||||
static nsresult GetAgentVersion(nsCAutoString& _retval);
|
||||
|
||||
/**
|
||||
* Get agent version by float
|
||||
*/
|
||||
static nsresult GetAgentVersion(float* _retval);
|
||||
|
||||
static nsresult GetNSVersion(nsAString& _retval);
|
||||
|
||||
/**
|
||||
* Check for existing arch directory.
|
||||
*/
|
||||
static PRBool TestArch(nsILocalFile* aPluginPath, nsAString& aArch);
|
||||
|
||||
/**
|
||||
* Check for existing NS version directory.
|
||||
*/
|
||||
static PRBool TestNSVersion(nsILocalFile* aArchPath, nsAString& aNSVersion);
|
||||
|
||||
/**
|
||||
* Test if a specific node in the base directory exists.
|
||||
*/
|
||||
static PRBool TestExists(nsILocalFile* aBaseDir, nsAString& aSubName);
|
||||
|
||||
/**
|
||||
* The table to store the config list.
|
||||
*/
|
||||
nsHashtable mJVMConfigList;
|
||||
};
|
||||
|
||||
#endif // nsJVMConfigManagerUnix_h___
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,259 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsJVMManager_h___
|
||||
#define nsJVMManager_h___
|
||||
|
||||
#include "jvmmgr.h"
|
||||
#include "prtypes.h"
|
||||
#include "nscore.h"
|
||||
#include "jni.h"
|
||||
#include "jsdbgapi.h"
|
||||
#include "nsError.h"
|
||||
|
||||
#include "nsjvm.h"
|
||||
#include "nsAgg.h"
|
||||
#include "jsjava.h"
|
||||
#include "nsVoidArray.h"
|
||||
#include "nsILiveConnectManager.h"
|
||||
|
||||
#include "nsIObserver.h"
|
||||
|
||||
class nsSymantecDebugManager;
|
||||
class nsIWebBrowserChrome;
|
||||
|
||||
/*******************************************************************************
|
||||
* NsJVMManager is the interface to the JVM manager that the browser sees. All
|
||||
* files that want to include java services should include this header file.
|
||||
* nsIJVMManager is the more limited interface what the JVM plugin sees.
|
||||
******************************************************************************/
|
||||
|
||||
struct nsJVMManager : public nsIJVMManager, public nsIJVMThreadManager,
|
||||
public nsILiveConnectManager, public nsIObserver {
|
||||
public:
|
||||
|
||||
NS_DECL_AGGREGATED
|
||||
|
||||
NS_DECL_NSIJVMMANAGER
|
||||
|
||||
NS_DECL_NSIOBSERVER
|
||||
|
||||
/* from nsIJVMThreadManager: */
|
||||
|
||||
/**
|
||||
* Returns a unique identifier for the "current" system thread.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetCurrentThread(PRThread* *threadID);
|
||||
|
||||
/**
|
||||
* Pauses the current thread for the specified number of milliseconds.
|
||||
* If milli is zero, then merely yields the CPU if another thread of
|
||||
* greater or equal priority.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Sleep(PRUint32 milli = 0);
|
||||
|
||||
/**
|
||||
* Creates a unique monitor for the specified address, and makes the
|
||||
* current system thread the owner of the monitor.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
EnterMonitor(void* address);
|
||||
|
||||
/**
|
||||
* Exits the monitor associated with the address.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
ExitMonitor(void* address);
|
||||
|
||||
/**
|
||||
* Waits on the monitor associated with the address (must be entered already).
|
||||
* If milli is 0, wait indefinitely.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Wait(void* address, PRUint32 milli = 0);
|
||||
|
||||
/**
|
||||
* Notifies a single thread waiting on the monitor associated with the address (must be entered already).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
Notify(void* address);
|
||||
|
||||
/**
|
||||
* Notifies all threads waiting on the monitor associated with the address (must be entered already).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
NotifyAll(void* address);
|
||||
|
||||
/**
|
||||
* Creates a new thread, calling the specified runnable's Run method (a la Java).
|
||||
*/
|
||||
NS_IMETHOD
|
||||
CreateThread(PRThread **thread, nsIRunnable* runnable);
|
||||
|
||||
/**
|
||||
* Posts an event to specified thread, calling the runnable from that thread.
|
||||
* @param threadID thread to call runnable from
|
||||
* @param runnable object to invoke from thread
|
||||
* @param async if true, won't block current thread waiting for result
|
||||
*/
|
||||
NS_IMETHOD
|
||||
PostEvent(PRThread *thread, nsIRunnable* runnable, PRBool async);
|
||||
|
||||
/* from nsILiveConnectManager: */
|
||||
|
||||
/**
|
||||
* Attempts to start LiveConnect using the specified JSRuntime.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted)
|
||||
{
|
||||
outStarted = MaybeStartupLiveConnect();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to stop LiveConnect using the specified JSRuntime.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown)
|
||||
{
|
||||
outShutdown = MaybeShutdownLiveConnect();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether LiveConnect can be used.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
IsLiveConnectEnabled(PRBool& outEnabled)
|
||||
{
|
||||
outEnabled = IsLiveConnectEnabled();
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/**
|
||||
* Initializes a JSContext with the proper LiveConnect support classes.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
InitLiveConnectClasses(JSContext* context, JSObject* globalObject);
|
||||
|
||||
/**
|
||||
* Creates a JavaScript wrapper for a Java object.
|
||||
*/
|
||||
NS_IMETHOD
|
||||
WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject);
|
||||
|
||||
/* JVMMgr specific methods: */
|
||||
|
||||
/* ====> From here on are things only called by the browser, not the plugin... */
|
||||
NS_IMETHOD
|
||||
GetClasspathAdditions(const char* *result);
|
||||
|
||||
nsIJVMPlugin* GetJVMPlugin(void) { return fJVM; }
|
||||
|
||||
/* Unlike the nsIJVMPlugin::StartupJVM, this version handles putting
|
||||
* up any error dialog: */
|
||||
nsJVMStatus StartupJVM(void);
|
||||
nsJVMStatus ShutdownJVM(PRBool fullShutdown = PR_FALSE);
|
||||
nsJVMStatus GetJVMStatus(void);
|
||||
void SetJVMEnabled(PRBool enabled);
|
||||
|
||||
#if 0
|
||||
void ReportJVMError(nsresult err);
|
||||
const char* GetJavaErrorString(JNIEnv* env);
|
||||
#endif
|
||||
|
||||
nsresult AddToClassPath(const char* dirPath);
|
||||
PRBool MaybeStartupLiveConnect(void);
|
||||
PRBool MaybeShutdownLiveConnect(void);
|
||||
PRBool IsLiveConnectEnabled(void);
|
||||
JSJavaVM* GetJSJavaVM(void) { return fJSJavaVM; }
|
||||
|
||||
|
||||
nsJVMManager(nsISupports* outer);
|
||||
virtual ~nsJVMManager(void);
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
|
||||
* @return conjure up THE nsIWebBrowserChrome instance from thin
|
||||
* air!
|
||||
|
||||
*/
|
||||
|
||||
nsresult GetChrome(nsIWebBrowserChrome **theChrome);
|
||||
const char* GetJavaErrorString(JRIEnv* env);
|
||||
|
||||
nsIJVMPlugin* fJVM;
|
||||
nsJVMStatus fStatus;
|
||||
nsISupports* fDebugManager;
|
||||
JSJavaVM * fJSJavaVM;
|
||||
nsVoidArray* fClassPathAdditions;
|
||||
char* fClassPathAdditionsString;
|
||||
PRBool fStartupMessagePosted;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
* Symantec Debugger Stuff
|
||||
******************************************************************************/
|
||||
|
||||
class nsSymantecDebugManager : public nsISymantecDebugManager {
|
||||
public:
|
||||
|
||||
NS_DECL_AGGREGATED
|
||||
|
||||
NS_IMETHOD
|
||||
SetDebugAgentPassword(PRInt32 pwd);
|
||||
|
||||
static NS_METHOD
|
||||
Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr,
|
||||
nsJVMManager* nsJVMManager);
|
||||
|
||||
protected:
|
||||
nsSymantecDebugManager(nsISupports* outer, nsJVMManager* nsJVMManager);
|
||||
virtual ~nsSymantecDebugManager(void);
|
||||
|
||||
nsJVMManager* fJVMMgr;
|
||||
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#endif // nsJVMManager_h___
|
|
@ -1,226 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "nsJVMPluginTagInfo.h"
|
||||
#include "nsIPluginTagInfo2.h"
|
||||
#include "plstr.h"
|
||||
#include "nsCRT.h" // mixing metaphors with plstr.h!
|
||||
#ifdef XP_UNIX
|
||||
#undef Bool
|
||||
#endif
|
||||
|
||||
static NS_DEFINE_IID(kIPluginTagInfo2IID, NS_IPLUGINTAGINFO2_IID);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// nsJVMPluginTagInfo
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
nsJVMPluginTagInfo::nsJVMPluginTagInfo(nsISupports* outer, nsIPluginTagInfo2* info)
|
||||
: fPluginTagInfo(info), fSimulatedCodebase(NULL), fSimulatedCode(NULL)
|
||||
{
|
||||
NS_INIT_AGGREGATED(outer);
|
||||
}
|
||||
|
||||
nsJVMPluginTagInfo::~nsJVMPluginTagInfo(void)
|
||||
{
|
||||
if (fSimulatedCodebase)
|
||||
PL_strfree(fSimulatedCodebase);
|
||||
|
||||
if (fSimulatedCode)
|
||||
PL_strfree(fSimulatedCode);
|
||||
}
|
||||
|
||||
NS_IMPL_AGGREGATED(nsJVMPluginTagInfo)
|
||||
NS_INTERFACE_MAP_BEGIN_AGGREGATED(nsJVMPluginTagInfo)
|
||||
NS_INTERFACE_MAP_ENTRY(nsIJVMPluginTagInfo)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
|
||||
static void
|
||||
oji_StandardizeCodeAttribute(char* buf)
|
||||
{
|
||||
// strip off the ".class" suffix
|
||||
char* cp;
|
||||
|
||||
if ((cp = PL_strrstr(buf, ".class")) != NULL)
|
||||
*cp = '\0';
|
||||
|
||||
// Convert '/' to '.'
|
||||
cp = buf;
|
||||
while ((*cp) != '\0') {
|
||||
if ((*cp) == '/')
|
||||
(*cp) = '.';
|
||||
|
||||
++cp;
|
||||
}
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::GetCode(const char* *result)
|
||||
{
|
||||
if (fSimulatedCode) {
|
||||
*result = fSimulatedCode;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
const char* code;
|
||||
nsresult err = fPluginTagInfo->GetAttribute("code", &code);
|
||||
if (err == NS_OK && code) {
|
||||
fSimulatedCode = PL_strdup(code);
|
||||
oji_StandardizeCodeAttribute(fSimulatedCode);
|
||||
*result = fSimulatedCode;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
const char* classid;
|
||||
err = fPluginTagInfo->GetAttribute("classid", &classid);
|
||||
if (err == NS_OK && classid && PL_strncasecmp(classid, "java:", 5) == 0) {
|
||||
fSimulatedCode = PL_strdup(classid + 5); // skip "java:"
|
||||
oji_StandardizeCodeAttribute(fSimulatedCode);
|
||||
*result = fSimulatedCode;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// XXX what about "javaprogram:" and "javabean:"?
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::GetCodeBase(const char* *result)
|
||||
{
|
||||
// If we've already cached and computed the value, use it...
|
||||
if (fSimulatedCodebase) {
|
||||
*result = fSimulatedCodebase;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// See if it's supplied as an attribute...
|
||||
const char* codebase;
|
||||
nsresult err = fPluginTagInfo->GetAttribute("codebase", &codebase);
|
||||
if (err == NS_OK && codebase != NULL) {
|
||||
*result = codebase;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
// Okay, we'll need to simulate it from the layout tag's base URL.
|
||||
const char* docBase;
|
||||
err = fPluginTagInfo->GetDocumentBase(&docBase);
|
||||
if (err != NS_OK) return err;
|
||||
codebase = (const char*) docBase;
|
||||
|
||||
if ((fSimulatedCodebase = PL_strdup(codebase)) != NULL) {
|
||||
char* lastSlash = PL_strrchr(fSimulatedCodebase, '/');
|
||||
|
||||
// chop of the filename from the original document base URL to
|
||||
// generate the codebase.
|
||||
if (lastSlash != NULL)
|
||||
*(lastSlash + 1) = '\0';
|
||||
}
|
||||
|
||||
*result = fSimulatedCodebase;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::GetArchive(const char* *result)
|
||||
{
|
||||
return fPluginTagInfo->GetAttribute("archive", result);
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::GetName(const char* *result)
|
||||
{
|
||||
const char* attrName;
|
||||
nsPluginTagType type;
|
||||
nsresult err = fPluginTagInfo->GetTagType(&type);
|
||||
if (err != NS_OK) return err;
|
||||
switch (type) {
|
||||
case nsPluginTagType_Applet:
|
||||
attrName = "name";
|
||||
break;
|
||||
default:
|
||||
attrName = "id";
|
||||
break;
|
||||
}
|
||||
return fPluginTagInfo->GetAttribute(attrName, result);
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::GetMayScript(PRBool *result)
|
||||
{
|
||||
const char* attr;
|
||||
*result = PR_FALSE;
|
||||
|
||||
nsresult err = fPluginTagInfo->GetAttribute("mayscript", &attr);
|
||||
if (err) return err;
|
||||
|
||||
if (PL_strcasecmp(attr, "true") == 0)
|
||||
{
|
||||
*result = PR_TRUE;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
nsJVMPluginTagInfo::Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr,
|
||||
nsIPluginTagInfo2* info)
|
||||
{
|
||||
if(!aInstancePtr)
|
||||
return NS_ERROR_INVALID_POINTER;
|
||||
|
||||
if (outer && !aIID.Equals(NS_GET_IID(nsISupports)))
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
|
||||
nsJVMPluginTagInfo* jvmTagInfo = new nsJVMPluginTagInfo(outer, info);
|
||||
if (jvmTagInfo == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsresult result = jvmTagInfo->AggregatedQueryInterface(aIID, aInstancePtr);
|
||||
if (NS_FAILED(result)) goto error;
|
||||
|
||||
result = jvmTagInfo->QueryInterface(kIPluginTagInfo2IID,
|
||||
(void**)&jvmTagInfo->fPluginTagInfo);
|
||||
if (NS_FAILED(result)) goto error;
|
||||
return result;
|
||||
|
||||
error:
|
||||
delete jvmTagInfo;
|
||||
return result;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsJVMPluginTagInfo_h___
|
||||
#define nsJVMPluginTagInfo_h___
|
||||
|
||||
#include "nsIJVMPluginTagInfo.h"
|
||||
#include "nsAgg.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* nsJVMPluginTagInfo: The browser makes one of these when it sees an APPLET or
|
||||
* appropriate OBJECT tag.
|
||||
******************************************************************************/
|
||||
|
||||
class nsIPluginTagInfo2;
|
||||
|
||||
class nsJVMPluginTagInfo : public nsIJVMPluginTagInfo {
|
||||
public:
|
||||
|
||||
NS_DECL_AGGREGATED
|
||||
|
||||
/* from nsIJVMPluginTagInfo: */
|
||||
|
||||
/* ====> These are usually only called by the plugin, not the browser... */
|
||||
|
||||
NS_IMETHOD
|
||||
GetCode(const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetCodeBase(const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetArchive(const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetName(const char* *result);
|
||||
|
||||
NS_IMETHOD
|
||||
GetMayScript(PRBool *result);
|
||||
|
||||
/* Methods specific to nsJVMPluginInstancePeer: */
|
||||
|
||||
/* ====> From here on are things only called by the browser, not the plugin... */
|
||||
|
||||
static NS_METHOD
|
||||
Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr,
|
||||
nsIPluginTagInfo2* info);
|
||||
|
||||
protected:
|
||||
|
||||
nsJVMPluginTagInfo(nsISupports* outer, nsIPluginTagInfo2* info);
|
||||
virtual ~nsJVMPluginTagInfo(void);
|
||||
|
||||
/* Instance Variables: */
|
||||
nsIPluginTagInfo2* fPluginTagInfo;
|
||||
char* fSimulatedCodebase;
|
||||
char* fSimulatedCode;
|
||||
};
|
||||
|
||||
#endif // nsJVMPluginTagInfo_h___
|
|
@ -1,101 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// NETSCAPE JAVA VM PLUGIN EXTENSIONS FOR SYMANTEC DEBUGGER
|
||||
//
|
||||
// This interface allows the browser to initialize a JVM that supports a
|
||||
// debugger. It's called the "Symantec Debugger Interface" because it currently
|
||||
// provides access to the Symantec Cafe or Visual Cafe debugger in the Netscape
|
||||
// JVM. It is not meant to be the be-all-to-end-all of debugger interfaces.
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef nsscd_h___
|
||||
#define nsscd_h___
|
||||
|
||||
#include "nsjvm.h"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Symantec Debug Manager Interface
|
||||
//
|
||||
// Implemented by the browser that supports the Symantec debugger.
|
||||
|
||||
class NPISymantecDebugManager : public nsISupports {
|
||||
public:
|
||||
|
||||
NS_IMETHOD_(PRBool)
|
||||
SetDebugAgentPassword(PRInt32 pwd) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NP_ISYMANTECDEBUGMANAGER_IID \
|
||||
{ /* 131362e0-d985-11d1-8155-006008119d7a */ \
|
||||
0x131362e0, \
|
||||
0xd985, \
|
||||
0x11d1, \
|
||||
{0x81, 0x55, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Symantec Debugger Interface
|
||||
//
|
||||
// Implemented by the JVM plugin that supports the Symantec debugger.
|
||||
|
||||
enum NPSymantecDebugPort {
|
||||
NPSymantecDebugPort_None = 0,
|
||||
NPSymantecDebugPort_SharedMemory = -1
|
||||
// anything else is a port number
|
||||
};
|
||||
|
||||
class NPISymantecDebugger : public nsISupports {
|
||||
public:
|
||||
|
||||
NS_IMETHOD_(JVMError)
|
||||
StartDebugger(NPSymantecDebugPort port) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NP_ISYMANTECDEBUGGER_IID \
|
||||
{ /* 954399f0-d980-11d1-8155-006008119d7a */ \
|
||||
0x954399f0, \
|
||||
0xd980, \
|
||||
0x11d1, \
|
||||
{0x81, 0x55, 0x00, 0x60, 0x08, 0x11, 0x9d, 0x7a} \
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif /* nsscd_h___ */
|
|
@ -1,114 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1998
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Plugin Manager Methods to support the JVM Plugin API
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "nsJVMManager.h"
|
||||
|
||||
NS_IMPL_AGGREGATED(nsSymantecDebugManager)
|
||||
|
||||
nsSymantecDebugManager::nsSymantecDebugManager(nsISupports* outer, nsJVMManager* jvmMgr)
|
||||
: fJVMMgr(jvmMgr)
|
||||
{
|
||||
NS_INIT_AGGREGATED(outer);
|
||||
}
|
||||
|
||||
nsSymantecDebugManager::~nsSymantecDebugManager()
|
||||
{
|
||||
}
|
||||
|
||||
NS_INTERFACE_MAP_BEGIN_AGGREGATED(nsSymantecDebugManager)
|
||||
NS_INTERFACE_MAP_ENTRY(nsISymantecDebugManager)
|
||||
NS_INTERFACE_MAP_END
|
||||
|
||||
NS_METHOD
|
||||
nsSymantecDebugManager::Create(nsISupports* outer, const nsIID& aIID, void* *aInstancePtr,
|
||||
nsJVMManager* jvmMgr)
|
||||
{
|
||||
if (!aInstancePtr)
|
||||
return NS_ERROR_INVALID_POINTER;
|
||||
NS_ENSURE_PROPER_AGGREGATION(outer, aIID);
|
||||
|
||||
nsSymantecDebugManager* dbgr = new nsSymantecDebugManager(outer, jvmMgr);
|
||||
if (dbgr == NULL)
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
|
||||
nsISupports* inner = dbgr->InnerObject();
|
||||
nsresult rv = inner->QueryInterface(aIID, aInstancePtr);
|
||||
if (NS_FAILED(rv)) {
|
||||
delete dbgr;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
|
||||
#if defined(XP_WIN) && defined(_WIN32)
|
||||
extern "C" HWND FindNavigatorHiddenWindow(void);
|
||||
#endif
|
||||
|
||||
NS_METHOD
|
||||
nsSymantecDebugManager::SetDebugAgentPassword(PRInt32 pwd)
|
||||
{
|
||||
#if defined(XP_WIN) && defined(_WIN32)
|
||||
HWND win = NULL;
|
||||
/*
|
||||
** TODO:amusil Get to a hidden window for symantec debugger to get its password from.
|
||||
HWND win = FindNavigatorHiddenWindow();
|
||||
*/
|
||||
HANDLE sem;
|
||||
long err;
|
||||
|
||||
/* set up by aHiddenFrameClass in CNetscapeApp::InitInstance */
|
||||
err = SetWindowLong(win, 0, pwd);
|
||||
if (err == 0) {
|
||||
// PR_LOG(NSJAVA, PR_LOG_ALWAYS,
|
||||
// ("SetWindowLong returned %ld (err=%d)\n", err, GetLastError()));
|
||||
/* continue so that we try to wake up the DebugManager */
|
||||
}
|
||||
sem = OpenSemaphoreW(SEMAPHORE_MODIFY_STATE, FALSE, L"Netscape-Symantec Debugger");
|
||||
if (sem) {
|
||||
ReleaseSemaphore(sem, 1, NULL);
|
||||
CloseHandle(sem);
|
||||
}
|
||||
return NS_OK;
|
||||
#else
|
||||
return NS_ERROR_FAILURE;
|
||||
#endif
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
|
@ -1,326 +0,0 @@
|
|||
Frequently Asked Questions ( for Build and Execution)
|
||||
|
||||
Build Problems
|
||||
--------------
|
||||
NOTE: These API tests are build using Gnu COmpiler gcc.
|
||||
Always ensure that you compile Tests in same mode as Mozilla is compiled.
|
||||
(Debug/Non-debug).
|
||||
|
||||
Solaris/Linux:
|
||||
==============
|
||||
|
||||
1) On invoking gmake I get a message
|
||||
WARNING: MOZILLA_HOME variable is incorrect !
|
||||
|
||||
MOZILLA_HOME dir. should point to absolute Path of mozilla dir. under
|
||||
which all sources are located (e.g. /opt/mozilla).
|
||||
|
||||
|
||||
2) On invoking gmake I get an error
|
||||
/usr/ucb/cc: language optional software package not installed
|
||||
make: Fatal error: Command failed for target `link'
|
||||
|
||||
This is because it could not find a valid GNU compiler 'gcc' in your PATH.
|
||||
Update your PATH variable to point a valid location for 'gcc'
|
||||
Also set the environment variable CC to gcc
|
||||
(if in C-shell then, setenv CC gcc).
|
||||
|
||||
|
||||
3) On invoking gmake I get an error, even though I have 'gcc' in my PATH.
|
||||
Error message displayed is
|
||||
/usr/ucb/cc: language optional software package not installed
|
||||
make: Fatal error: Command failed for target `link'
|
||||
|
||||
|
||||
Set environment variable CC to gcc
|
||||
(if in C-shell then, setenv CC gcc).
|
||||
|
||||
|
||||
4) On invoking gmake I get an error,
|
||||
sh: javac: not found
|
||||
|
||||
This is because you do not have 'javac' in your PATH
|
||||
Add ${JDKHOME}/bin into your PATH environment variable
|
||||
|
||||
|
||||
5) On invoking gmake I get an error,
|
||||
undefined versioned symbol not found. NSGetModule@@Exported
|
||||
|
||||
This is the famous problem of Mozilla being compiled in DEBUG mode
|
||||
and OJI API tests in non-debug mode.
|
||||
Ensure that both are the same (See mozilla.org build req. for setting
|
||||
Debug/Non-debug mode).
|
||||
|
||||
|
||||
Win32:
|
||||
======
|
||||
|
||||
5) On invoking nmake I get an error
|
||||
OJITestLoader.h: fatal error: Cannot open include file 'nsISupports.h'
|
||||
no such file or directory
|
||||
|
||||
This is because MOZILLA_HOME is not set
|
||||
MOZILLA_HOME dir. should point to absolute Path of mozilla dir. under
|
||||
which all sources are located (e.g. /opt/mozilla).
|
||||
|
||||
|
||||
6) On invoking nmake I get an error
|
||||
LINK: fatal error LNK1181: cannot open input file nspr4.lib
|
||||
|
||||
This is because MOZILLA_HOME is not set
|
||||
MOZILLA_HOME dir. should point to absolute Path of mozilla dir. under
|
||||
which all sources are located (e.g. /opt/mozilla).
|
||||
|
||||
|
||||
7) On invoking nmake I get an error
|
||||
.... Cannot open include file prtypes.h
|
||||
|
||||
This usually happens if you have built MOZILLA in non-debug mode and are
|
||||
trying to build the tests in debug mode.
|
||||
Check you environment. You will have MOZ_DEBUG set
|
||||
Unsetting it will resolve the problem
|
||||
( set MOZ_DEBUG= )
|
||||
|
||||
|
||||
8) On invoking nmake I get an error (even after I have set MOZILLA_HOME)
|
||||
LINK: fatal error LNK1181: cannot open input file nspr4.lib
|
||||
|
||||
This usually happens if you have built MOZILLA in non-debug mode and are
|
||||
trying to build the tests in debug mode.
|
||||
Check you environment. You will have MOZ_DEBUG set
|
||||
Unsetting it will resolve the problem
|
||||
( set MOZ_DEBUG= )
|
||||
|
||||
|
||||
9) On invoking nmake I get an error
|
||||
NMAKE: fatal error ..: javac : return code...
|
||||
|
||||
This is because you do not have 'javac' in your PATH
|
||||
Add ${JDKHOME}/bin into your PATH environment variable
|
||||
|
||||
|
||||
===========================================================================
|
||||
|
||||
Execution Problems
|
||||
------------------
|
||||
NOTE: These API tests are build using Gnu Compiler gcc.
|
||||
|
||||
10) On execution autorun.pl I get errors
|
||||
syntax error in file autorun.pl at line 36, next 2 tokens "use POSIX"
|
||||
syntax error in file autorun.pl at line 72, next 2 tokens "cwd("
|
||||
syntax error in file autorun.pl at line 94, next 2 tokens "\usage("
|
||||
Execution of autorun.pl aborted due to compilation errors.
|
||||
|
||||
|
||||
This is becuase you are using an older version of Perl
|
||||
Use Perl version >= 5 and add the same to PATH environment variable
|
||||
|
||||
|
||||
11) On execution of autorun.pl I get message
|
||||
MOZILLA_FIVE_HOME is not set. Please set it and rerun this script....
|
||||
|
||||
The environment variable MOZILLA_FIVE_HOME is not set
|
||||
It should point to absolute dir. where mozilla-bin is located
|
||||
Set MOZILLA_FIVE_HOME <mozilla dir>/dist/bin
|
||||
|
||||
|
||||
12) How can I invoke a specific test
|
||||
|
||||
In the script directory, there is a file OJITestsList.lst. This file
|
||||
contains list of all tests. To execute any particular one use '-t'
|
||||
option.
|
||||
perl autorun.pl -t JNIEnv_AllocObject_2
|
||||
This command will execute on this particular test.
|
||||
|
||||
|
||||
13) On executing autorun.pl, browser always invokes "Profile Window". Is there
|
||||
any way to suppress this box.
|
||||
|
||||
In autorun.pl, search of ADDITIONAL_PARAMETERS. It is set to "-P default"
|
||||
Change it to reflect your Profile name (-P myProfile)
|
||||
|
||||
|
||||
14) On executing autorun.pl, browser does not load the test.html.
|
||||
|
||||
This is because it is not able tofind test.html.
|
||||
There are 2 ways of setting. One is to set environment variable TEST_URL
|
||||
to point to dir. which contains test.html
|
||||
(In C-Shell setenv TEST_URL <mozilla dir>/modules/oji/tests/script )
|
||||
|
||||
or open autorun.pl and change DEFAULT_TEST_URL to indicate your path
|
||||
|
||||
|
||||
15) On executing autorun.pl, browser in invoked, but before test.html is loaded
|
||||
it exits.
|
||||
|
||||
This is due to the DELAY_FACTOR set in the script.
|
||||
On slower machine, you may want to increase the value of this variable.
|
||||
Open autorun.pl, search for DELAY_FACTOR. change the value to a
|
||||
higher number (currently it is set to 50)
|
||||
|
||||
16) On executin autorun.pl, it immedialtely exits. On checking the log file
|
||||
it says fatal: libgkggfx.so: open failed: No such file or directory
|
||||
|
||||
This is because <MOZILLA_FIVE_HOME> is not set in LD_LIBRARY_PATH, and
|
||||
so is not able to find the above mentioned library.
|
||||
Setting it, will resolve the problem.
|
||||
(setenv LD_LIBRARY_PATH <MOZILLA_FIVE_HOME>:${LD_LIBRARY_PATH})
|
||||
|
||||
|
||||
17) On executing autorun.pl, browser in invoked, an test.html is loaded, but
|
||||
it does not prompt me for a "Internet Security" Dialog box.
|
||||
|
||||
There can be many factors for this
|
||||
* Cross-check the 'test.html'. It should have the following line
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")
|
||||
|
||||
* Check <home dir>/.mozilla/default/prefs.js (on Solaris/Linux) or
|
||||
c:/Program Files/Mozilla/Users50/Default/prefs.js (on Win32)
|
||||
file. If it has the following entries
|
||||
user_pref("capability.principal.codebase.p0.granted", "UniversalXPConnect");
|
||||
user_pref("capability.principal.codebase.p0.id", "file://");
|
||||
|
||||
then, you have already given access permissions. Remove these entries
|
||||
and try execution again.
|
||||
|
||||
* Check the above prefs.js if it has entry
|
||||
user_pref("capability.principal.codebase.p0.denied", "UniversalXPConnect");
|
||||
|
||||
then you have Denied permissions to execute it. Remove that entry and
|
||||
re-try execution.
|
||||
|
||||
|
||||
18) On executin autorun.pl, it loads test.html and exits after sometime.
|
||||
However the result is FAILED. On checking the log file it indicates
|
||||
ld.so.1: /opt/mozilla/dist/bin/mozilla-bin: fatal: liboji.so: open
|
||||
failed: No such file or directory
|
||||
|
||||
This is because <MOZILLA_FIVE_HOME>/components dir. is not set in
|
||||
LD_LIBRARY_PATH, and so is not able to find the above mentioned library.
|
||||
Setting it, will resolve the problem.
|
||||
(setenv LD_LIBRARY_PATH <MOZILLA_FIVE_HOME>/components:${LD_LIBRARY_PATH})
|
||||
|
||||
|
||||
19) Where can I find list of All Test Cases?
|
||||
|
||||
In 'script' dir. there is a file 'OJITestsList.lst'. This file lists
|
||||
out all Test Cases.
|
||||
|
||||
|
||||
20) Is there a list of Test Cases that have to PASS for a particular platform
|
||||
|
||||
In 'script' directory there is a file OJIValidTestsList.lst. This is
|
||||
list of Test cases which have to PASS for a particular platform.
|
||||
|
||||
|
||||
21) What should I do to invoke 'should PASS' Tests for a particular platform
|
||||
|
||||
In 'script' dir. rename 'OJITestsList.lst' to 'OJITestsList.lst.orig'.
|
||||
Copy OJIValidTestsList.lst to OJITestsList.lst
|
||||
And then invoke autorun.pl
|
||||
|
||||
|
||||
22) Is Macintosh platform supported.
|
||||
|
||||
Currently tests are not supported for Macintosh platform.
|
||||
|
||||
|
||||
23) What platforms are supported.
|
||||
|
||||
Win32 (NT/98/95/2000) and Solaris 2.7/2.8 (intel/sparc)
|
||||
|
||||
|
||||
24) On Win32 platforms, after execution all the Tests, my "Start Menu bar"
|
||||
is filled with tons of small "Duke' icons. How can I get rid of it?
|
||||
|
||||
This is one of the bugs in Java Plugin. After exiting browser, the Duke
|
||||
icon is still displayed in the rightmost corner of Start Bar. If we move
|
||||
mouse over the icon, it disappears.
|
||||
|
||||
To avoid this whole bunch of icons, after you invoke autorun.pl, just
|
||||
place the mouse at the righmost corner on the Duke icon.
|
||||
|
||||
|
||||
25) Where are the result files stored.
|
||||
|
||||
In 'script/log' directory you will find a bunch of log files.
|
||||
BWTest.txt file lists out PASS/FAIL results.
|
||||
BWTest.html is the above file in HTML format.
|
||||
BWTestRun.log is the history of tests you ran.
|
||||
|
||||
|
||||
26) What other options are supported by autorun.pl
|
||||
|
||||
Invoke perl autorun.pl -help
|
||||
It will list out all options
|
||||
|
||||
|
||||
27) After running tests, I went ahead and remove the libraries from components
|
||||
directory (libojapi*.so)
|
||||
Now when I invoke Mozilla, it complains of not finding those libraries.
|
||||
How can I remove this dependency.
|
||||
|
||||
In you MOZILLA_FIVE_HOME dir. there is a file 'component.reg'.
|
||||
Delete this file and invoke mozilla again.
|
||||
|
||||
|
||||
28) All my JNI Tests seem to be failing even after I have granted permissions
|
||||
to XPConnect call (thru' Internet Security Box).
|
||||
|
||||
All JNI tests has dependency on Java class files in 'build/classes' dir.
|
||||
If the JVM cannot find theses classes, all tests will fail.
|
||||
Go to <JDKHOME>/jre/bin directory. Invoke the 'ControlPanel' executable.
|
||||
(On Win32 platforms click on Start->Settings->Control Panel->Duke icon)
|
||||
|
||||
In the Java RunTime Parameters Text Field, add the following entry
|
||||
-Xbootclasspath/a:<mozilla dir>/modules/oji/tests/build/classes
|
||||
|
||||
where <mozilla dir> is absolute path to mozilla dir.
|
||||
( e.g: -Xbootclasspath/a:c:\mozilla\modules\oji\tests\build\classes )
|
||||
|
||||
Press 'Apply'
|
||||
Go to to your <home dir>/.java
|
||||
There should be a 'properties130_01' file with the entry
|
||||
javaplugin.jre.params=-Xbootclasspath/a\:c\:\\mozilla\\modules\oji\\tests\\build\\classes
|
||||
Now retry, executing the Tests .
|
||||
|
||||
|
||||
|
||||
29) On Win98, when I run thru' the tests, and if Mozilla crashes, it invokes
|
||||
a VC++ debug window, which stays on top. Sometimes I see a lot of
|
||||
such windows. How can I ge rid of them? (I do not see the same on NT)
|
||||
|
||||
|
||||
This is a bug we have encuntered.
|
||||
In src/Killer dir. there is a file killer.cpp.win98.
|
||||
DO the following.
|
||||
copy killer.cpp to killer.cpp.win32
|
||||
copy killer.cpp.win98 to killer.cpp
|
||||
then execute command
|
||||
cl killer.cpp /link user32.lib
|
||||
|
||||
This will generate a new killer.exe .
|
||||
copy killer.exe to 'script' dir.
|
||||
Now re-run the Tests. This problem should be resolved.
|
||||
|
||||
|
||||
30) After I run a particular test, and if tests is flagged of as FAILED
|
||||
how do I know what went wrong.
|
||||
|
||||
In 'script/log' dir. for Each Test case there is a equivalent log created
|
||||
named <testcase>_<pid>.log
|
||||
|
||||
To find out which is the most recent log, check by time stamp
|
||||
(ls -lt <testcase>_*.log )
|
||||
Open the recent one, and it will tell you what went wrong
|
||||
|
||||
|
||||
32) If I encounter any other problems while running these tests, whom can I
|
||||
contact?
|
||||
|
||||
Send feedback to oji@eng.sun.com. Someone will get in touch with you.
|
||||
|
||||
|
||||
|
||||
|
||||
===========================================================================
|
|
@ -1,168 +0,0 @@
|
|||
This README file indicates steps required for Building and Execution of OJI API tests
|
||||
|
||||
How the Tests Work
|
||||
------------------
|
||||
These OJI API Tests basically 4 areas via:
|
||||
Java Native Interface (JNI)
|
||||
JVM Manager Tests (JM)
|
||||
Thread Manager Tests (TM)
|
||||
LiveConnect Manager Tests (LCM)
|
||||
|
||||
On Building the Test Base ( from build directory) 5 shared libraries are
|
||||
created which are copied over to the bin/components dir.
|
||||
( libojiapijmtests.so,libojiapilcmtests.so, libojiapitmtests.so,
|
||||
libojiapijnitests.so, libojiapitl.so )
|
||||
|
||||
On Invoking the browser, it registers all these libraries and then invokes
|
||||
the page test.html (in script dir.)
|
||||
|
||||
It first prompts a dialog box for Permissions to invoke a XPConnect call.
|
||||
The user has to grant permissions to execute the tests.
|
||||
(NOTE: If user denys, then the tests cannot be invoked)
|
||||
|
||||
Once permissions are granted, it will follow these steps
|
||||
* Create a TestLoader instance.
|
||||
* Read List of Tests from file OJITestsList.lst (in script dir.)
|
||||
* For each test entry in that file, determine type of Test (JNI/JM/LCM/TM)
|
||||
* Load appropriate library if not already loaded
|
||||
* Find method address from the loaded library
|
||||
* Invoke method to be tested with appropriate test parameters
|
||||
* Record results in log file
|
||||
|
||||
Below are instructions on how to build and execute.
|
||||
Also check FAQ for answers to known problems encountered.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Instructions (Build/Execution)
|
||||
==============================
|
||||
|
||||
Win32
|
||||
-----
|
||||
|
||||
============-=============
|
||||
I. Build OJI API test:
|
||||
==========================
|
||||
|
||||
Pre-Requisite: You must have built mozilla browser and
|
||||
have Perl (version >= 5) installed.
|
||||
|
||||
1. set MOZILLA_HOME (top of Mozilla's tree) and JAVAHOME variables
|
||||
2. set MOZILLA_FIVE_HOME to <MOZILLA_HOME>/dist/win32_O.obj/bin directory
|
||||
where mozilla.exe is located
|
||||
3. goto build directory and say
|
||||
nmake -f Makefile.win
|
||||
|
||||
Libraries created are located in 'build/bin' dir. and
|
||||
MOZILLA_FIVE_HOME/components directory.
|
||||
|
||||
=============================
|
||||
II.Execute OJI API tests:
|
||||
=============================
|
||||
|
||||
Pre-Requisite: Have Perl (version >= 5) installed and
|
||||
Java1.3.0_01 SDK installed.
|
||||
|
||||
1. Update <homedir>/Program Files/Users50/<profile dir>/prefs.js to add line
|
||||
user_pref("signed.applets.codebase_principal_support",true);
|
||||
where <profile dir> is your profile name
|
||||
2. Update Path variable to include
|
||||
$MOZILLA_HOME/dist/win32_O.obj/bin and
|
||||
$MOZILLA_HOME/dist/win32_O.obj/bin/components
|
||||
3. Set TEST_URL to point to url location of test.html.
|
||||
(file://<mozilla dir>/modules/oji/tests/script)
|
||||
4. Delete component.reg file in Mozilla's bin directory.
|
||||
5. Click on Start-Settings-Control Panel->Duke icon.
|
||||
This will invoke the Java Plugin Control Panel
|
||||
6. In Runtime Parameter Text Field add the following line
|
||||
-Xbootclasspath/a:<class dir>
|
||||
where <class dir> is <MOZILLA_HOME>\modules\oji\tests\build\classes
|
||||
7. Create .java.policy file in you home directory and add this line
|
||||
grant {
|
||||
permission java.security.AllPermission;
|
||||
}
|
||||
8. Change DELAY_FACTOR in script/autorun.pl to some higher value, if mozilla
|
||||
takes more time to load. It should be a value greater than 0.
|
||||
9 Change script/autorun.pl and change ADDITIONAL_PARAMETERS to reflect your
|
||||
profile
|
||||
10. Goto script dir. and run perl script
|
||||
perl autorun.pl
|
||||
11. It will invoke the browser and load 'test.html'.
|
||||
12. It should prompt a "Internet Security" Dialog box prompting for Permissions
|
||||
Check "Remember the decision" checkbox.
|
||||
Click on 'Yes' (NOTE: clicking on 'No' will not invoke any of the Tests).
|
||||
|
||||
All done
|
||||
See results of execution in the script/log directory.
|
||||
Output HTML file is script/log/BWTest.html
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Solaris/Linux
|
||||
--------------
|
||||
|
||||
==========================
|
||||
I. Build OJI API test:
|
||||
==========================
|
||||
|
||||
Pre-Requisite: You must have built mozilla browser and have
|
||||
have Perl (version >= 5) installed.
|
||||
|
||||
1. set MOZILLA_HOME (top of Mozilla's tree) and JAVAHOME variables
|
||||
2. set MOZILLA_FIVE_HOME to <MOZILLA_HOME>/dist/bin
|
||||
where mozilla-bin is located
|
||||
3. set CC to point to gcc
|
||||
setenv CC gcc
|
||||
4. goto build directory and say
|
||||
gmake
|
||||
|
||||
Libraries created are located in 'build/bin' dir. and
|
||||
MOZILLA_FIVE_HOME/components directory.
|
||||
|
||||
=============================
|
||||
II. Execute OJI API tests:
|
||||
=============================
|
||||
|
||||
Pre-Requisite: Have Perl installed and Java2 SDK installed.
|
||||
|
||||
1. Update <home dir>/.mozilla/<profile dir>/prefs.js to add line
|
||||
user_pref("signed.applets.codebase_principal_support",true);
|
||||
where <profile dir> is your profile name
|
||||
2. Update LD_LIBRARY_PATH variable to include
|
||||
$MOZILLA_HOME/dist/bin and
|
||||
$MOZILLA_HOME/dist/bin/components
|
||||
3. Set TEST_URL to point to url location of test.html.
|
||||
(file://<mozilla dir>/modules/oji/tests/script)
|
||||
4. Delete component.reg file in Mozilla's bin directory.
|
||||
5. Invoke <Java2 SDK dir.>/jre/bin/ControlPanel
|
||||
6. In RunTime Parameter Text Field add the following line
|
||||
-Xbootclasspath/a:<class dir>
|
||||
where <class dir> is <MOZILLA_HOME>/modules/oji/tests/build/classes
|
||||
|
||||
7. Create .java.policy file in you home directory and add the lines
|
||||
grant {
|
||||
permission java.security.AllPermission;
|
||||
}
|
||||
8. Change DELAY_FACTOR in script/autorun.pl to some higher value, if mozilla
|
||||
takes more time to load. It should be a value greater than 0.
|
||||
9 Change script/autorun.pl and change ADDITIONAL_PARAMETERS to reflect your
|
||||
profile (by default it uses default).
|
||||
10. Goto script dir. and run perl script
|
||||
perl autorun.pl
|
||||
11. It will invoke the browser and load 'test.html'.
|
||||
12. It should prompt a "Internet Security" Dialog box prompting for Permissions
|
||||
Check "Remember the decision" checkbox.
|
||||
Click on 'Yes' (NOTE: clicking on 'No' will not invoke any of the Tests).
|
||||
|
||||
|
||||
All done
|
||||
See results of execution in the script/log directory.
|
||||
Output HTML file is script/log/BWTest.html
|
||||
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Mac
|
||||
---
|
||||
|
||||
Currently does not work with Mac.
|
|
@ -1,73 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
DIRS= \
|
||||
TestLoader \
|
||||
JM \
|
||||
TM \
|
||||
LCM \
|
||||
JNI
|
||||
|
||||
TOP_DIR = ..
|
||||
|
||||
all: createdir check_env $(DIRS)
|
||||
|
||||
$(DIRS)::
|
||||
@echo "############## Building $@ ####################"
|
||||
@cd $(TOP_DIR)/src/$@; \
|
||||
if test ! -f depend.mak; then >depend.mak; fi; \
|
||||
$(MAKE) make_depends; \
|
||||
$(MAKE) all;
|
||||
|
||||
check_env:
|
||||
@if test ! -d $(MOZILLA_HOME)/dist/include; then echo "WARNING: MOZILLA_HOME variable is incorrect !"; exit 1; fi
|
||||
|
||||
createdir:
|
||||
@mkdir -p bin
|
||||
@mkdir -p classes
|
||||
|
||||
clean:
|
||||
@for d in $(DIRS); do \
|
||||
rm -rf $(TOP_DIR)/src/$$d/obj; \
|
||||
find $(TOP_DIR)/src/$$d -name depend.mak -type f -exec rm -f {} \;; \
|
||||
find $(TOP_DIR)/src/$$d -name cmd.mak -type f -exec rm -f {} \;; \
|
||||
done
|
||||
@rm -rf bin/* classes/*
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
DIRS= \
|
||||
TestLoader \
|
||||
JM \
|
||||
TM \
|
||||
LCM \
|
||||
JNI
|
||||
|
||||
TOP_DIR = ..
|
||||
|
||||
|
||||
all:
|
||||
!if !exist(bin)
|
||||
@mkdir bin
|
||||
!endif
|
||||
!if !exist(classes)
|
||||
@mkdir classes
|
||||
!endif
|
||||
@set MAKE_TARGET=make_depends
|
||||
@nmake -nologo -f Makefile.win $(DIRS)
|
||||
@set MAKE_TARGET=all
|
||||
@nmake -nologo -f Makefile.win $(DIRS)
|
||||
|
||||
$(DIRS)::
|
||||
@echo "########### Making $(MAKE_TARGET) in $@ ##############";
|
||||
@cd $(TOP_DIR)/src/$@
|
||||
@nmake -nologo -f Makefile.win $(MAKE_TARGET)
|
||||
@cd ../../build
|
||||
|
||||
clean:
|
||||
@set MAKE_TARGET=clean
|
||||
@nmake -nologo -f Makefile.win $(DIRS)
|
||||
@del /f/s/q bin\* classes\*
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
JVMManager_CreateProxyJNI_1
|
|
@ -1,168 +0,0 @@
|
|||
This README file indicates steps required for Building and Execution of OJI API tests
|
||||
|
||||
How the Tests Work
|
||||
------------------
|
||||
These OJI API Tests basically 4 areas via:
|
||||
Java Native Interface (JNI)
|
||||
JVM Manager Tests (JM)
|
||||
Thread Manager Tests (TM)
|
||||
LiveConnect Manager Tests (LCM)
|
||||
|
||||
On Building the Test Base ( from build directory) 5 shared libraries are
|
||||
created which are copied over to the bin/components dir.
|
||||
( libojiapijmtests.so,libojiapilcmtests.so, libojiapitmtests.so,
|
||||
libojiapijnitests.so, libojiapitl.so )
|
||||
|
||||
On Invoking the browser, it registers all these libraries and then invokes
|
||||
the page test.html (in script dir.)
|
||||
|
||||
It first prompts a dialog box for Permissions to invoke a XPConnect call.
|
||||
The user has to grant permissions to execute the tests.
|
||||
(NOTE: If user denys, then the tests cannot be invoked)
|
||||
|
||||
Once permissions are granted, it will follow these steps
|
||||
* Create a TestLoader instance.
|
||||
* Read List of Tests from file OJITestsList.lst (in script dir.)
|
||||
* For each test entry in that file, determine type of Test (JNI/JM/LCM/TM)
|
||||
* Load appropriate library if not already loaded
|
||||
* Find method address from the loaded library
|
||||
* Invoke method to be tested with appropriate test parameters
|
||||
* Record results in log file
|
||||
|
||||
Below are instructions on how to build and execute.
|
||||
Also check FAQ for answers to known problems encountered.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Instructions (Build/Execution)
|
||||
==============================
|
||||
|
||||
Win32
|
||||
-----
|
||||
|
||||
============-=============
|
||||
I. Build OJI API test:
|
||||
==========================
|
||||
|
||||
Pre-Requisite: You must have built mozilla browser and
|
||||
have Perl (version >= 5) installed.
|
||||
|
||||
1. set MOZILLA_HOME (top of Mozilla's tree) and JAVAHOME variables
|
||||
2. set MOZILLA_FIVE_HOME to <MOZILLA_HOME>/dist/win32_O.obj/bin directory
|
||||
where mozilla.exe is located
|
||||
3. goto build directory and say
|
||||
nmake -f Makefile.win
|
||||
|
||||
Libraries created are located in 'build/bin' dir. and
|
||||
MOZILLA_FIVE_HOME/components directory.
|
||||
|
||||
=============================
|
||||
II.Execute OJI API tests:
|
||||
=============================
|
||||
|
||||
Pre-Requisite: Have Perl (version >= 5) installed and
|
||||
Java1.3.0_01 SDK installed.
|
||||
|
||||
1. Update <homedir>/Program Files/Users50/<profile dir>/prefs.js to add line
|
||||
user_pref("signed.applets.codebase_principal_support",true);
|
||||
where <profile dir> is your profile name
|
||||
2. Update Path variable to include
|
||||
$MOZILLA_HOME/dist/win32_O.obj/bin and
|
||||
$MOZILLA_HOME/dist/win32_O.obj/bin/components
|
||||
3. Set TEST_URL to point to url location of test.html.
|
||||
(file://<mozilla dir>/modules/oji/tests/script)
|
||||
4. Delete component.reg file in Mozilla's bin directory.
|
||||
5. Click on Start-Settings-Control Panel->Duke icon.
|
||||
This will invoke the Java Plugin Control Panel
|
||||
6. In Runtime Parameter Text Field add the following line
|
||||
-Xbootclasspath/a:<class dir>
|
||||
where <class dir> is <MOZILLA_HOME>\modules\oji\tests\build\classes
|
||||
7. Create .java.policy file in you home directory and add this line
|
||||
grant {
|
||||
permission java.security.AllPermission;
|
||||
}
|
||||
8. Change DELAY_FACTOR in script/autorun.pl to some higher value, if mozilla
|
||||
takes more time to load. It should be a value greater than 0.
|
||||
9 Change script/autorun.pl and change ADDITIONAL_PARAMETERS to reflect your
|
||||
profile
|
||||
10. Goto script dir. and run perl script
|
||||
perl autorun.pl
|
||||
11. It will invoke the browser and load 'test.html'.
|
||||
12. It should prompt a "Internet Security" Dialog box prompting for Permissions
|
||||
Check "Remember the decision" checkbox.
|
||||
Click on 'Yes' (NOTE: clicking on 'No' will not invoke any of the Tests).
|
||||
|
||||
All done
|
||||
See results of execution in the script/log directory.
|
||||
Output HTML file is script/log/BWTest.html
|
||||
|
||||
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Solaris/Linux
|
||||
--------------
|
||||
|
||||
==========================
|
||||
I. Build OJI API test:
|
||||
==========================
|
||||
|
||||
Pre-Requisite: You must have built mozilla browser and have
|
||||
have Perl (version >= 5) installed.
|
||||
|
||||
1. set MOZILLA_HOME (top of Mozilla's tree) and JAVAHOME variables
|
||||
2. set MOZILLA_FIVE_HOME to <MOZILLA_HOME>/dist/bin
|
||||
where mozilla-bin is located
|
||||
3. set CC to point to gcc
|
||||
setenv CC gcc
|
||||
4. goto build directory and say
|
||||
gmake
|
||||
|
||||
Libraries created are located in 'build/bin' dir. and
|
||||
MOZILLA_FIVE_HOME/components directory.
|
||||
|
||||
=============================
|
||||
II. Execute OJI API tests:
|
||||
=============================
|
||||
|
||||
Pre-Requisite: Have Perl installed and Java2 SDK installed.
|
||||
|
||||
1. Update <home dir>/.mozilla/<profile dir>/prefs.js to add line
|
||||
user_pref("signed.applets.codebase_principal_support",true);
|
||||
where <profile dir> is your profile name
|
||||
2. Update LD_LIBRARY_PATH variable to include
|
||||
$MOZILLA_HOME/dist/bin and
|
||||
$MOZILLA_HOME/dist/bin/components
|
||||
3. Set TEST_URL to point to url location of test.html.
|
||||
(file://<mozilla dir>/modules/oji/tests/script)
|
||||
4. Delete component.reg file in Mozilla's bin directory.
|
||||
5. Invoke <Java2 SDK dir.>/jre/bin/ControlPanel
|
||||
6. In RunTime Parameter Text Field add the following line
|
||||
-Xbootclasspath/a:<class dir>
|
||||
where <class dir> is <MOZILLA_HOME>/modules/oji/tests/build/classes
|
||||
|
||||
7. Create .java.policy file in you home directory and add the lines
|
||||
grant {
|
||||
permission java.security.AllPermission;
|
||||
}
|
||||
8. Change DELAY_FACTOR in script/autorun.pl to some higher value, if mozilla
|
||||
takes more time to load. It should be a value greater than 0.
|
||||
9 Change script/autorun.pl and change ADDITIONAL_PARAMETERS to reflect your
|
||||
profile (by default it uses default).
|
||||
10. Goto script dir. and run perl script
|
||||
perl autorun.pl
|
||||
11. It will invoke the browser and load 'test.html'.
|
||||
12. It should prompt a "Internet Security" Dialog box prompting for Permissions
|
||||
Check "Remember the decision" checkbox.
|
||||
Click on 'Yes' (NOTE: clicking on 'No' will not invoke any of the Tests).
|
||||
|
||||
|
||||
All done
|
||||
See results of execution in the script/log directory.
|
||||
Output HTML file is script/log/BWTest.html
|
||||
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
Mac
|
||||
---
|
||||
|
||||
Currently does not work with Mac.
|
|
@ -1,60 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
!if defined(MOZ_DEBUG)
|
||||
WIN32DIR=WIN32_D.OBJ
|
||||
!else
|
||||
WIN32DIR=WIN32_O.OBJ
|
||||
!endif
|
||||
|
||||
INCLUDES = $(INCLUDES) \
|
||||
-I. \
|
||||
-I$(TOP_DIR)/src/include \
|
||||
-I$(JAVAHOME)/include \
|
||||
-I$(JAVAHOME)/include/win32 \
|
||||
-I$(MOZILLA_HOME)/include \
|
||||
-I$(MOZILLA_HOME)/dist/include \
|
||||
-I$(MOZILLA_HOME)/dist/$(WIN32DIR)/include \
|
||||
-I$(MOZILLA_HOME)/dist/$(WIN32DIR)/include/obsolete
|
||||
|
||||
|
||||
!if defined(MOZ_DEBUG)
|
||||
DEFINES=-DXP_WIN -DDEBUG
|
||||
!else
|
||||
DEFINES=-DXP_WIN
|
||||
!endif
|
||||
|
||||
CC_OBJ=@cl $(DEFINES) /Zi /nologo $(INCLUDES) /c /Fo$(OBJ_DIR)\ /Fd$(OBJ_DIR)/default.pdb
|
|
@ -1,51 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
INCLUDES += -I. \
|
||||
-I$(TOP_DIR)/src/include \
|
||||
-I$(JDK_HOME)/include \
|
||||
-I$(JDK_HOME)/include/$(OS) \
|
||||
-I$(MOZILLA_HOME)/include \
|
||||
-I$(MOZILLA_HOME)/dist/include
|
||||
|
||||
DEFINES=-DXP_UNIX
|
||||
ifeq ($(MOZ_DEBUG),1)
|
||||
DEFINES+=-DDEBUG
|
||||
endif
|
||||
|
||||
CC_OBJ=$(CC) $(C_FLAGS) $(DEFINES) $(INCLUDES)
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
($#ARGV > 0) || die "Usage: make_depends.pl <OBJ_dir> <CC_command_macro_name> <CPP_files_list>\n";
|
||||
|
||||
open(OUT, ">depend.mak") || die "Can't create depend.mak file: $!\n";
|
||||
|
||||
print OUT "# This file is generated automatically. Don't edit it !\n\n";
|
||||
$ext = "o";
|
||||
if ($^O =~ /Win32/) { $ext = "obj"; }
|
||||
for ($i=2; $i<$#ARGV+1; $i++) {
|
||||
if ($ARGV[$i] =~ /(.*?).cpp/) {
|
||||
$name = $1;
|
||||
#print "Creating rule for file $name.cpp\n";
|
||||
print OUT "$ARGV[0]/$name.$ext: $name.cpp\n\t\$\($ARGV[1]\) \$\? \>\> cmd.mak\n\n";
|
||||
}
|
||||
}
|
||||
close(OUT);
|
|
@ -1,81 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
($#ARGV > 2) || die "Usage: make_mak.pl <LIST_FILE> <CC_makro_name> <TOP_DIR> <OBJ_DIR> <original_INCLUDES>\n";
|
||||
|
||||
#Read CPP's to be recompiled
|
||||
|
||||
if (open (MAK, $ARGV[0])) {
|
||||
$empty = 0;
|
||||
undef $/;
|
||||
@file_list=split(/\n/, <MAK>);
|
||||
close MAK;
|
||||
} else {
|
||||
$empty=1;
|
||||
}
|
||||
|
||||
|
||||
#Write new makefile
|
||||
|
||||
open (MAK, ">".$ARGV[0]) || die "Can't open file $ARGV[0]: $!\n";
|
||||
|
||||
print MAK "# This file is generated automatically. Don't edit it !\n\n";
|
||||
print MAK "TOP_DIR=$ARGV[2]\n";
|
||||
print MAK "OBJ_DIR=$ARGV[3]\n";
|
||||
print MAK "INCLUDES=$ARGV[4]\n";
|
||||
print MAK "OS=$^O\n";
|
||||
if ($^O !~ /Win32/) {
|
||||
print MAK "CC=".(($ENV{"CC"})?$ENV{"CC"}:"gcc")."\n";
|
||||
print MAK "C_FLAGS=".(($ENV{"USE_SUN_WS"} eq "1")?"-c -g -KPIC":"-c -fPIC -fno-rtti")."\n";
|
||||
}
|
||||
|
||||
$ext = "mk";
|
||||
if ($^O =~ /Win32/) { $ext = "mak"; }
|
||||
print MAK "include $ARGV[2]/build/compile.$ext\n";
|
||||
print MAK "CPP=";
|
||||
if (!$empty) { print MAK " \\\n"; } else { print MAK "\n"; }
|
||||
for ($i=0; $file = $file_list[$i]; $i++) {
|
||||
chomp $file;
|
||||
if ($i < $#file_list) {
|
||||
print MAK "\t$file \\\n";
|
||||
} else {
|
||||
print MAK "\t$file \n";
|
||||
}
|
||||
}
|
||||
|
||||
print MAK "all:";
|
||||
if (!$empty) { print MAK "\n\t\$\($ARGV[1]\) \$\(CPP\)\n"; }
|
||||
close MAK;
|
|
@ -1,60 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
#($#ARGV >= 0) || die "Usage: perl mfgen.pl <dir>\n";
|
||||
|
||||
$list = `ls *.cpp`;
|
||||
|
||||
@filelist = split (/\n/, $list);
|
||||
|
||||
print "TOP_DIR = ../../..\nOBJ_DIR = ../obj\nCPP =";
|
||||
foreach $file (@filelist) {
|
||||
if ($file =~ /^.*?\.cpp$/) {
|
||||
print " \\\n";
|
||||
print "\t$file";
|
||||
}
|
||||
}
|
||||
|
||||
print "\n\nOBJS =";
|
||||
foreach $file (@filelist) {
|
||||
if ($file =~ /^(.*?)\.cpp$/) {
|
||||
print " \\\n";
|
||||
print "\t\$\(OBJ_DIR\)\/$1.o";
|
||||
}
|
||||
}
|
||||
print "\n\nINCLUDES = -I..\/include \ninclude ..\/..\/..\/build\/rules.mk \nall: compile\n";
|
|
@ -1,89 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
LIBS = nspr4.lib xpcom.lib oji.lib plc4.lib
|
||||
|
||||
!if defined(MOZ_DEBUG)
|
||||
LD_FLAGS = /LIBPATH:$(MOZILLA_HOME)/dist/WIN32_D.OBJ/lib \
|
||||
/LIBPATH:$(OBJ_DIR)
|
||||
!else
|
||||
LD_FLAGS = /LIBPATH:$(MOZILLA_HOME)/dist/WIN32_O.OBJ/lib \
|
||||
/LIBPATH:$(OBJ_DIR)
|
||||
!endif
|
||||
|
||||
ADD_CPP=@echo
|
||||
|
||||
MAKE_MAK=perl $(TOP_DIR)/build/make_mak.pl
|
||||
|
||||
!if exist(depend.mak)
|
||||
include depend.mak
|
||||
!endif
|
||||
|
||||
objdir:
|
||||
!if defined(OBJ_DIR)
|
||||
!if !exist($(OBJ_DIR))
|
||||
@mkdir $(OBJ_DIR)
|
||||
!endif
|
||||
!endif
|
||||
|
||||
del_cmd:
|
||||
!if exist(cmd.mak)
|
||||
@del cmd.mak
|
||||
!endif
|
||||
|
||||
compile: objdir del_cmd $(OBJS)
|
||||
@$(MAKE_MAK) cmd.mak CC_OBJ $(TOP_DIR) $(OBJ_DIR) $(INCLUDES)
|
||||
@nmake -nologo -f cmd.mak all
|
||||
|
||||
link:
|
||||
@link /NOLOGO /DEBUG $(LD_FLAGS) $(LIBS) $(OBJS) /DLL /OUT:$(OBJ_DIR)\$(DLL).dll
|
||||
@cp obj/$(DLL).dll $(TOP_DIR)/build/bin
|
||||
!if defined(MOZ_DEBUG)
|
||||
@cp obj/$(DLL).dll $(TOP_DIR)/../../../dist/win32_d.obj/bin/components
|
||||
!else
|
||||
@cp obj/$(DLL).dll $(TOP_DIR)/../../../dist/win32_o.obj/bin/components
|
||||
!endif
|
||||
|
||||
make_depends: Makefile.win
|
||||
!if !exist(depend.mak)
|
||||
#it's convenient to add one more parameter - COMMON_DEPENDS
|
||||
#which contain all common includes for particular interface tests
|
||||
@perl $(TOP_DIR)/build/make_depends.pl $(OBJ_DIR) ADD_CPP $(CPP)
|
||||
!endif
|
||||
|
||||
clean:
|
||||
@-del /f/s/q $(OBJ_DIR)\* cmd.mak depend.mak
|
|
@ -1,90 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
LIBS = -lnspr4 -lxpcom -loji -lplc4
|
||||
LD_PATH = -L$(MOZILLA_HOME)/dist/lib -L$(MOZILLA_HOME)/dist/bin/components -L$(OBJ_DIR)
|
||||
LD_FLAGS_GCC=-shared
|
||||
LD_FLAGS_WS=-G
|
||||
|
||||
ADD_CPP=@echo
|
||||
|
||||
MAKE_MAK=perl $(TOP_DIR)/build/make_mak.pl
|
||||
|
||||
MAKE_DEPENDS=perl $(TOP_DIR)/build/make_depends.pl
|
||||
|
||||
include depend.mak
|
||||
|
||||
make_depends: Makefile
|
||||
@if test ! -s depend.mak; then \
|
||||
$(MAKE_DEPENDS) $(OBJ_DIR) ADD_CPP $(CPP); \
|
||||
fi
|
||||
|
||||
objdir:
|
||||
@if test 'x$(OBJ_DIR)' != 'x'; then \
|
||||
if test ! -d $(OBJ_DIR); then \
|
||||
mkdir $(OBJ_DIR); \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
del_cmd:
|
||||
@if test -f cmd.mak; then \
|
||||
rm cmd.mak; \
|
||||
fi
|
||||
|
||||
ifndef MOZ_DEBUG
|
||||
include $(MOZILLA_HOME)/config/autoconf.mk
|
||||
endif
|
||||
|
||||
compile: objdir del_cmd $(OBJS)
|
||||
@-mv *.o $(OBJ_DIR) 2> /dev/null
|
||||
@$(MAKE_MAK) cmd.mak CC_OBJ $(TOP_DIR) $(OBJ_DIR) $(INCLUDES)
|
||||
@export MOZ_DEBUG; MOZ_DEBUG=$(MOZ_DEBUG); $(MAKE) -f cmd.mak all
|
||||
@-mv *.o $(OBJ_DIR) 2> /dev/null
|
||||
|
||||
|
||||
link:
|
||||
@if test 'x$(USE_SUN_WS)' = 'x1'; then \
|
||||
$(CC) $(LD_FLAGS_WS) $(OBJS) $(LD_PATH) $(LIBS) -o $(OBJ_DIR)/lib$(DLL).so; \
|
||||
else \
|
||||
$(CC) $(LD_FLAGS_GCC) $(OBJS) $(LD_PATH) $(LIBS) -o $(OBJ_DIR)/lib$(DLL).so; \
|
||||
fi;
|
||||
@cp obj/lib$(DLL).so $(TOP_DIR)/build/bin/.
|
||||
@cp obj/lib$(DLL).so $(TOP_DIR)/../../../dist/bin/components/.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<script>
|
||||
function startOJITests() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
// var OJITestLoader = Components.classes["component://netscape/oji/test/api/loader"].createInstance();
|
||||
var OJITestLoader = Components.classes['@mozilla.org/oji/test/api/loader;1'].createInstance();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h2 align="center">OJI API tests starting page. </h2>
|
||||
Results of tests execution could be found on the console and
|
||||
in the appropriate output files.
|
||||
<script>
|
||||
startOJITests();
|
||||
</script>
|
||||
</body>
|
|
@ -1,908 +0,0 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="GENERATOR" content="Mozilla/4.51 [en] (X11; U; SunOS 5.7 sun4u) [Netscape]">
|
||||
<title>OJI Test Analysis
|
||||
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
OJI API Test Analysis</h1>
|
||||
|
||||
<h2>
|
||||
Table of Content</h2>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#How2">How many tests cases can be created?</a></li>
|
||||
<ul>
|
||||
<li><a href="#nsIJVMManager">Interface : nsIJVMManager</a></li>
|
||||
<li><a href="#nsIJVMPluginInstance">Interface : nsIJVMPluginInstance</a></li>
|
||||
<li><a href="#nsIJVMPlugin">Interface : nsIJVMPlugin</a></li>
|
||||
<li><a href="#nsIJVMPluginTagInfo">Interface : nsIJVMPluginTagInfo</a></li>
|
||||
<li><a href="#nsIJVMPrefsWindow">Interface : nsIJVMPrefsWindow</a></li>
|
||||
<li><a href="#nsIJVMWindow">Interface : nsIJVMWindow</a></li>
|
||||
<li><a href="#nsILiveConnectManager">Interface : nsILiveConnectManager</a></li>
|
||||
<li><a href="#nsIJVMConsole">Interface : nsIJVMConsole</a></li>
|
||||
<li><a href="#nsISecureEnv">Interface : nsISecureEnv</a></li>
|
||||
<li><a href="#nsIThreadManager">Interface : nsIThreadManager</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
<a NAME="How2"></a>How many tests cases can be created?
|
||||
<p> A total of 323 test cases
|
||||
can be written for testing OJI APIs .
|
||||
<br> Below is a list of OJI API
|
||||
methods that are being implemented in
|
||||
<br> browser code for OJI and/or in
|
||||
Kestrel code(for windows) . Each method under
|
||||
<br> an interface include details like
|
||||
the number of possible test cases
|
||||
<br> and the possible test values.
|
||||
At the end of interface there is a
|
||||
<br> total for the number of
|
||||
test cases for this Interface.
|
||||
<br>
|
||||
<br> Note:
|
||||
<br> ====
|
||||
<br> <b>Interfaces nsIJRIPlugin.h ,
|
||||
nsISecureJNI.h and nsISecureJNI2.h are found</b>
|
||||
<br><b> under the mozilla/modules/oji/public
|
||||
directory of mozilla.</b>
|
||||
<br><b> However these interfaces were not
|
||||
included in the Kestrel include directory.</b>
|
||||
<br><b> Also noticed that the methods
|
||||
declared within nsISecureJNI.h and nsISecureJNI2.h</b>
|
||||
<br><b> under mozilla/modules/oji/public
|
||||
directory</b>
|
||||
<br><b> were all included in the nsISecureEnv.h
|
||||
interface that is found in kestrel include directory</b>
|
||||
<ul>
|
||||
<li>
|
||||
<a name="nsIJVMManager"></a><b>Interface : nsIJVMManager</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD CreateProxyJNI(nsISecureEnv
|
||||
*secureEnv, JNIEnv * *outProxyEnv);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL value and a NON NULL value for
|
||||
both the parameters
|
||||
<p> Method:
|
||||
<br> NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv);
|
||||
<p> Implemented in :Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 2
|
||||
<br> Test cases will be written with NULL value and a NON NULL value
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD IsJavaEnabled(PRBool *outEnabled);
|
||||
<p> Implemented in :Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 2
|
||||
<br> Test cases will be written with NULL value and a NON NULL value
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ShowJavaConsole(void);
|
||||
<p>Implemented in :Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Total number of test cases for this Interface : 9
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMPluginInstance"></a><b>Interface : nsIJVMPluginInstance</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD GetJavaObject(jobject *result) = 0;
|
||||
<p> Implemented in : Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL
|
||||
<br> String value for the parameter
|
||||
<p> Method:
|
||||
<br> NS_IMETHOD GetText(const char* *result) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL
|
||||
<br> String value for the parameter
|
||||
<p>Total number of test cases for this Interface : 6
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMPlugin"></a><b>Interface : nsIJVMPlugin</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD AddToClassPath(const char* dirPath) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p> Method:
|
||||
<br> NS_IMETHOD GetClassPath(const char* *result) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD RemoveFromClassPath(const char* dirPath) = 0 ;
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 3
|
||||
<br>Test cases will be written with Empty String , NULL string and
|
||||
a NON NULL String value for the parameter
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD GetJavaWrapper(JNIEnv* jenv, jint obj, jobject
|
||||
*jobj) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with NULL and a NON NULL value
|
||||
for the parameters jenv , jobj and min_value
|
||||
<br>and max_value for obj.
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD CreateSecureEnv(JNIEnv* proxyEnv, nsISecureEnv*
|
||||
*outSecureEnv) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and a NON NULL value
|
||||
for the parameters
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD SpendTime(PRUint32 timeMillis) = 0;
|
||||
<p> Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with min_value and max_value or the
|
||||
unsigned int.
|
||||
<p>Total number of test cases for this Interface : 21
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMPluginTagInfo"></a><b>Interface : nsIJVMPluginTagInfo</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD GetCode(const char* *result) = 0;
|
||||
<p> Implemented in : mozilla
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p> Method:
|
||||
<br> NS_IMETHOD GetCodeBase(const char* *result) = 0;
|
||||
<p> Implemented in : mozilla
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD GetArchive(const char* *result) = 0;
|
||||
<p> Implemented in : mozilla
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p> Method:
|
||||
<br> NS_IMETHOD GetName(const char* *result) = 0;
|
||||
<p> Implemented in : mozilla
|
||||
<br> Number of test cases that can be written: 3
|
||||
<br> Test cases will be written with Empty String , NULL string
|
||||
and a NON NULL String value for the parameter
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD GetMayScript(PRBool *result) = 0;
|
||||
<p> Implemented in : mozilla
|
||||
<br> Number of test cases that can be written: 2
|
||||
<br> Test cases will be written with true or false values.
|
||||
<p>Total number of test cases for this Interface : 14
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMPrefsWindow"></a><b>Interface : nsIJVMPrefsWindow</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD Show(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD Hide(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD IsVisisble(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Total number of test cases for this Interface : 3
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMWindow"></a><b>Interface : nsIJVMWindow</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD Show(void);
|
||||
<br> NS_IMETHOD Hide(void);
|
||||
<br> IsVisisble(void);
|
||||
<p> All the methods in this interface are not implemented in the mozilla
|
||||
<br> code as well as the Kestrel code. So not sure if we need to test
|
||||
these
|
||||
<br>methods.
|
||||
<br>
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsILiveConnectManager"></a><b>Interface : nsILiveConnectManager</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD StartupLiveConnect(JSRuntime* runtime, PRBool&
|
||||
outStarted) = 0;
|
||||
<br> NS_IMETHOD ShutdownLiveConnect(JSRuntime* runtime, PRBool&
|
||||
outStarted) = 0;
|
||||
<p>These 2 methods are not implemented in mozilla code for OJI as well
|
||||
as Kestrel code
|
||||
<br>for windows.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD IsLiveConnectEnabled(PRBool& outEnabled) = 0;;
|
||||
<br> Implemented in : mozilla code for OJI
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD InitLiveConnectClasses(JSContext* context, JSObject* globalObject)
|
||||
= 0;
|
||||
<br> Implemented in : mozilla code for OJI
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD WrapJavaObject(JSContext* context, jobject javaObject, JSObject*
|
||||
*outJSObject) = 0;
|
||||
<br> Implemented in : mozilla code for OJI.
|
||||
<p> I guess these methods get called from the mozilla main thread.
|
||||
Hence
|
||||
<br>I do not know a way to force some values for the parameters in the
|
||||
above
|
||||
<br> Number of test cases that can be written: NONE
|
||||
<p>Total number of test cases for this Interface : NONE
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIJVMConsole"></a><b>Interface : nsIJVMConsole</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br>NS_IMETHOD Show(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD Hide(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Method:
|
||||
<br> NS_IMETHOD IsVisisble(void);
|
||||
<p>Implemented in :mozilla and Kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<p>Total number of test cases for this Interface : 3
|
||||
<br>
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsISecureEnv"></a><b>Interface : nsISecureEnv</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br> NS_IMETHOD NewObject(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jmethodID methodID,
|
||||
<br>
|
||||
/*[in]*/ jvalue *args,
|
||||
<br>
|
||||
/*[out]*/ jobject* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows.
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with Null and NON NULL values for
|
||||
clazz, methodID,
|
||||
<br>
|
||||
args, result.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD CallMethod(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[in]*/ jmethodID methodID,
|
||||
<br>
|
||||
/*[in]*/ jvalue *args,
|
||||
<br>
|
||||
/*[out]*/ jvalue* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in:a mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 10
|
||||
<br>Test cases will be written with Null and NON NULL values for type ,
|
||||
<br>
|
||||
obj, methodID , args , result
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NS_IMETHOD CallNonvirtualMethod(/*[in]*/ jni_type
|
||||
type,
|
||||
<br>
|
||||
/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jmethodID methodID,
|
||||
<br>
|
||||
/*[in]*/ jvalue *args,
|
||||
<br>
|
||||
/*[out]*/ jvalue* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) =0;
|
||||
<p>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 12
|
||||
<br>Test cases will be written with Null and NON NULL values for type ,
|
||||
<br>
|
||||
obj, methodID , args , result
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetField(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
<br>
|
||||
/*[out]*/ jvalue* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for type,
|
||||
<br> obj, fieldID
|
||||
, result
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD SetField(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
<br>
|
||||
/*[in]*/ jvalue val,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for type,
|
||||
<br> obj, filedID , val.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD CallStaticMethod(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jmethodID methodID,
|
||||
<br>
|
||||
/*[in]*/ jvalue *args,
|
||||
<br>
|
||||
/*[out]*/ jvalue* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 10
|
||||
<br>Test cases will be written with NULL and NON NULL values for type,
|
||||
<br>clazz , methodID, args , result.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStaticField(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
<br>
|
||||
/*[out]*/ jvalue* result,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
type,
|
||||
<br> clazz, fieldID, result.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD SetStaticField(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
<br>
|
||||
/*[in]*/ jvalue val,
|
||||
<br>
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) = 0;
|
||||
<br>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for type,
|
||||
<br> clazz, fieldID, result
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetVersion(/*[out]*/ jint* version) = 0;
|
||||
<br>Implemented in: mozilla and kestrel
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with max_value and min_value for
|
||||
<br> the machine dependent int.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD DefineClass(/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[in]*/ jobject loader,
|
||||
<br>
|
||||
/*[in]*/ const jbyte *buf,
|
||||
<br>
|
||||
/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 10
|
||||
<br>Test cases will be written with Empty String string , NULL and
|
||||
NON NULL string for name,
|
||||
<br>NULL and NON NULL values for loader , Empty String string , NULL and
|
||||
NON NULL string for buf,
|
||||
<br> min_value and max_value for len
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD FindClass(/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[out]*/ jclass* clazz) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 3
|
||||
<br>Test cases will be written with Empty String string ,
|
||||
<br>NULL and NON NULL string for name.
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetSuperclass(/*[in]*/ jclass sub,
|
||||
<br>
|
||||
/*[out]*/ jclass* super) = 0;
|
||||
<br>Implemented in:mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
sub ,
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD IsAssignableFrom(/*[in]*/ jclass sub,
|
||||
<br>
|
||||
/*[in]*/ jclass super,
|
||||
<br>
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written withNULL and NON NULL values for sub,
|
||||
<br> NULL and NON NULL vlaues for super .
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD Throw(/*[in]*/ jthrowable obj,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for obj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ThrowNew(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const char *msg,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 5
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
clazz,
|
||||
<br>empty string , Null string , Non null string values
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ExceptionOccurred(/*[out]*/ jthrowable* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ExceptionDescribe(void) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ExceptionClear(void) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 1
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD FatalError(/*[in]*/ const char* msg) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 3
|
||||
<br>Test cases will be written with Empty string , NULL string and
|
||||
NON NULL string
|
||||
<br>values for msg
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NewGlobalRef(/*[in]*/ jobject lobj,
|
||||
<br>
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for lobj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD DeleteGlobalRef(/*[in]*/ jobject gref) = 0;
|
||||
<br>Implemented in:mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with with NULL and NON NULL values for gref
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD DeleteLocalRef(/*[in]*/ jobject obj) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for obj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD IsSameObject(/*[in]*/ jobject obj1,
|
||||
<br>
|
||||
/*[in]*/ jobject obj2,
|
||||
<br>
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
<br>obj1 and obj2
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD AllocObject(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
<br>clazz.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetObjectClass(/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[out]*/ jclass* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL nad NON NULL values for
|
||||
obj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD IsInstanceOf(/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[out]*/ jboolean* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
<br>obj, NULL and NON NULL values for clazz.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetMethodID(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[in]*/ const char* sig,
|
||||
<br>
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for class,
|
||||
<br>empty string , NULL String and NON NULL string values for name and
|
||||
sig
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetFieldID(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[in]*/ const char* sig,
|
||||
<br>
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for clazz,
|
||||
<br>empty string , NULL String and NON NULL string values for name and
|
||||
sig
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStaticMethodID(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[in]*/ const char* sig,
|
||||
<br>
|
||||
/*[out]*/ jmethodID* id) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for clazz,
|
||||
<br>empty string , NULL String and NON NULL string values for name and
|
||||
sig
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStaticFieldID(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const char* name,
|
||||
<br>
|
||||
/*[in]*/ const char* sig,
|
||||
<br>
|
||||
/*[out]*/ jfieldID* id) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NON NULL values for clazz,
|
||||
<br>empty string , NULL String and NON NULL string values for name and
|
||||
sig
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NewString(/*[in]*/ const jchar* unicode,
|
||||
<br>
|
||||
/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
<br>unicode and min and max_value for len
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStringLength(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NON NULL values for str
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStringChars(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
<br>
|
||||
/*[out]*/ const jchar** result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULL values for
|
||||
str
|
||||
<br>and NULL and NON NULL values for chars
|
||||
<br>
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ReleaseStringChars(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[in]*/ const jchar *chars) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULL values for str
|
||||
<br>and NULL and NON NULL values for chars
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NewStringUTF(/*[in]*/ const char *utf,
|
||||
<br>
|
||||
/*[out]*/ jstring* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for utf
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStringUTFLength(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for str
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetStringUTFChars(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
<br>
|
||||
/*[out]*/ const char** result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NOT NULL values for str,
|
||||
<br>NULL and NOT NULL values for isCopy, empty string , NULL string .
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ReleaseStringUTFChars(/*[in]*/ jstring str,
|
||||
<br>
|
||||
/*[in]*/ const char *chars) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NON NULLvalues for str and
|
||||
chars
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetArrayLength(/*[in]*/ jarray array,
|
||||
<br>
|
||||
/*[out]*/ jsize* result) = 0;
|
||||
<br>Implemented in: only kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for array.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NewObjectArray(/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ jobject init,
|
||||
<br>
|
||||
/*[out]*/ jobjectArray* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with max and min_values for len,
|
||||
<br>NULL and NOT NULL values for clazz, NULL and NOT NULL values for init.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
<br>
|
||||
/*[in]*/ jsize index,
|
||||
<br>
|
||||
/*[out]*/ jobject* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NOT NULL values for array,
|
||||
<br>max and min_value for index
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD SetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
<br>
|
||||
/*[in]*/ jsize index,
|
||||
<br>
|
||||
/*[in]*/ jobject val) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with NULL and NOT NULL values for
|
||||
array,
|
||||
<br>min and max_values for index and NULL and NOT NULL values for val
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NewArray(/*[in]*/ jni_type element_type,
|
||||
<br>
|
||||
/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[out]*/ jarray* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with NULL and NOT NULL values for element_type
|
||||
<br>min and max_values for len
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetArrayElements(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jarray array,
|
||||
<br>
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
<br>
|
||||
/*[out]*/ void* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written:6
|
||||
<br>Test cases will be written with NULL and NOT NULL values for type,
|
||||
<br>NULL and NOT NULL values for array, NULL and NOT NULL values for isCopy
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD ReleaseArrayElements(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jarray array,
|
||||
<br>
|
||||
/*[in]*/ void *elems,
|
||||
<br>
|
||||
/*[in]*/ jint mode) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NOT NULL values for type
|
||||
<br>NULL and NOT NULL values for array , NULL and NOT NULL values for elems,
|
||||
<br>max and min values for mode
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetArrayRegion(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jarray array,
|
||||
<br>
|
||||
/*[in]*/ jsize start,
|
||||
<br>
|
||||
/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[out]*/ void* buf) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with NULL and NOT NULL values for type,
|
||||
<br>max and min values for start and len
|
||||
<br>
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD SetArrayRegion(/*[in]*/ jni_type type,
|
||||
<br>
|
||||
/*[in]*/ jarray array,
|
||||
<br>
|
||||
/*[in]*/ jsize start,
|
||||
<br>
|
||||
/*[in]*/ jsize len,
|
||||
<br>
|
||||
/*[in]*/ void* buf) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 8
|
||||
<br>Test cases will be written with NULL and NOT NULL valus for type,
|
||||
<br>NULL and NOT NULL values for array, min and max values for start ,
|
||||
len.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD RegisterNatives(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[in]*/ const JNINativeMethod *methods,
|
||||
<br>
|
||||
/*[in]*/ jint nMethods,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with NULL and NOT NULL values for clazz,
|
||||
JNINativeMethod,
|
||||
<br>min and max value for nMethods
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD UnregisterNatives(/*[in]*/ jclass clazz,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for clazz
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD MonitorEnter(/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written:2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for obj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD MonitorExit(/*[in]*/ jobject obj,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for obj
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD GetJavaVM(/*[in]*/ JavaVM **vm,
|
||||
<br>
|
||||
/*[out]*/ jint* result) = 0;
|
||||
<br>Implemented in: mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for vm
|
||||
<p>Total number of (possible) test cases for this Interface : 246 (phew..)
|
||||
<br>(May be even more ...)
|
||||
<br>
|
||||
<li>
|
||||
<a name="nsIThreadManager"></a><b>Interface : nsIThreadManager</b></li>
|
||||
|
||||
<br>Method:
|
||||
<br>NS_IMETHOD GetCurrentThread(PRUint32* threadID) = 0;
|
||||
<br>Implemented in: kestrel
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with max and min values fro threadID
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD Sleep(PRUint32 milli = 0) = 0;
|
||||
<br>Implemented in: mozilla
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with max and min values for milli
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD EnterMonitor(void* address) = 0;
|
||||
<br>Implemented in: mozilla
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for address
|
||||
<br>tested)
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) = 0;
|
||||
<br>Implemented in: mozilla
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be writtenwith NULL and NOT NULL values for address
|
||||
<br>and min and max value for milli
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD Notify(void* address) = 0;
|
||||
<br>Implemented in:mozilla
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for address
|
||||
<br>(Not sure how this can be tested)
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD NotifyAll(void* address) = 0;
|
||||
<br>Implemented in:mozilla
|
||||
<br>Number of test cases that can be written: 2
|
||||
<br>Test cases will be written with NULL and NOT NULL values for address
|
||||
<br>
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable)
|
||||
= 0;
|
||||
<br>Implemented in:mozilla
|
||||
<br>Number of test cases that can be written: 4
|
||||
<br>Test cases will be written with min and max value for threadID and
|
||||
NULL and NOT NULL
|
||||
<br>values for runnable.
|
||||
<p>Method:
|
||||
<br>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool
|
||||
async) = 0;
|
||||
<br>Implemented in:mozilla and kestrel code for windows
|
||||
<br>Number of test cases that can be written: 6
|
||||
<br>Test cases will be written with min and max value for threadID and
|
||||
NULL and NOT NULL
|
||||
<br>values for runnable, true or false value for async
|
||||
<p>Total number of test cases for this Interface : 24
|
||||
<br>
|
||||
<h3>
|
||||
<a NAME="How3"></a><font size=+0>2.5 Revision History.</font></h3>
|
||||
</ul>
|
||||
|
||||
<table BORDER=2 CELLSPACING=2 CELLPADDING=2 COLS=4 WIDTH="100%" BGCOLOR="#99FFCC" NOSAVE >
|
||||
<tr BGCOLOR="#FF6666" NOSAVE>
|
||||
<td WIDTH="15%">
|
||||
<center><b>Date</b></center>
|
||||
</td>
|
||||
|
||||
<td WIDTH="15%">
|
||||
<center><b>Version</b></center>
|
||||
</td>
|
||||
|
||||
<td WIDTH="20%" NOSAVE>
|
||||
<center><b>Author</b></center>
|
||||
</td>
|
||||
|
||||
<td>
|
||||
<center><b>Description</b></center>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr BGCOLOR="#99FFCC">
|
||||
<td> 11/04/99</td>
|
||||
|
||||
<td> 1.0</td>
|
||||
|
||||
<td> Geetha Vaidyanaathan </td>
|
||||
|
||||
<td> first draft</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<ul> </ul>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,254 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>OJI Test Analysis. Interfaces implemented by OJI module. </title>
|
||||
</head>
|
||||
<body>
|
||||
<pre>
|
||||
|
||||
<h1>
|
||||
OJI API Test Analysis. Interfaces implemented by OJI module (excluding JNIEnv). </h1>
|
||||
|
||||
<h2>
|
||||
Table of Content</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="#nsIJVMManager">Interface : nsIJVMManager (class nsJVMManager)</a></li>
|
||||
<li><a href="#nsILiveConnectManager">Interface : nsILiveConnectManager (class nsJVMManager)</a></li>
|
||||
<li><a href="#nsIThreadManager">Interface : nsIThreadManager (class nsJVMManager)</a></li>
|
||||
<li><a href="#nsIJVMPluginTagInfo">Interface : nsIJVMPluginTagInfo (class nsJVMPluginTagInfo)</a></li>
|
||||
</ul>
|
||||
|
||||
<a name="nsIJVMManager"></a><b>Interface : nsIJVMManager</b>
|
||||
|
||||
Method:
|
||||
NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with NULL value and a NON NULL value for both the parameters
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when
|
||||
- the CreateProxyJNI had already been called
|
||||
- hadn't already been called
|
||||
|
||||
Method:
|
||||
NS_IMETHOD IsJavaEnabled(PRBool *outEnabled);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when
|
||||
- the Java is enabled
|
||||
- there is not Java
|
||||
|
||||
Method:
|
||||
NS_IMETHOD ShowJavaConsole(void);
|
||||
|
||||
Number of test cases that can be written: 2
|
||||
Test cases will be written in cases
|
||||
- the Java is enabled
|
||||
- there is not Java
|
||||
|
||||
Total number of test cases for this Interface : 12
|
||||
|
||||
|
||||
<a name="nsILiveConnectManager"></a><b>Interface : nsILiveConnectManager</b>
|
||||
|
||||
Note:
|
||||
Due to the complexity of some objects used as parameteres the
|
||||
varying on this objects causes very big number of test cases, so
|
||||
below are enumerated only first-level test cases on stability with NULL values.
|
||||
|
||||
Method:
|
||||
NS_IMETHOD StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted);
|
||||
|
||||
Test cases will be written with:
|
||||
runtime: NULL value
|
||||
outStarted: NULL and a NON NULL value
|
||||
Number of test cases that can be written: 2
|
||||
|
||||
Method:
|
||||
NS_IMETHOD ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown);
|
||||
|
||||
Test cases will be written with:
|
||||
runtime: NULL value
|
||||
outShutdown: NULL and a NON NULL value
|
||||
Number of test cases that can be written: 2
|
||||
|
||||
Method:
|
||||
NS_IMETHOD IsLiveConnectEnabled(PRBool& outEnabled);
|
||||
|
||||
Test cases will be written with NULL and a NON NULL value
|
||||
Number of test cases that can be written: 2
|
||||
|
||||
Method:
|
||||
NS_IMETHOD InitLiveConnectClasses(JSContext* context, JSObject* globalObject);
|
||||
|
||||
Test cases will be written with NULL values
|
||||
Number of test cases that can be written: 1
|
||||
|
||||
Method:
|
||||
NS_IMETHOD WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject);
|
||||
|
||||
Test cases will be written with:
|
||||
context: NULL value
|
||||
javaObject: NULL value
|
||||
outJSObject: NULL and a NON NULL value
|
||||
Number of test cases that can be written: 2
|
||||
|
||||
Total number of test cases for this Interface : 9
|
||||
|
||||
|
||||
<a name="nsIThreadManager"></a><b>Interface : nsIThreadManager</b>
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetCurrentThread(nsPluginThread* *threadID);
|
||||
|
||||
Number of test cases that can be written: 2
|
||||
Test cases will be written with NULL and NON NULL values
|
||||
|
||||
Method:
|
||||
NS_IMETHOD Sleep(PRUint32 milli = 0);
|
||||
|
||||
Number of test cases that can be written: 2
|
||||
Test cases will be written with max and min values for milli
|
||||
|
||||
Method:
|
||||
NS_IMETHOD EnterMonitor(void* address);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NOT NULL values in cases when this monitor
|
||||
- is free
|
||||
- is already entered by this thread
|
||||
- is entered by another thread
|
||||
|
||||
Method:
|
||||
NS_IMETHOD ExitMonitor(void* address);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NOT NULL values in cases when this monitor
|
||||
- is free
|
||||
- is already entered by this thread
|
||||
- is entered by another thread
|
||||
|
||||
Method:
|
||||
NS_IMETHOD Wait(void* address, PRUint32 milli = 0);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with
|
||||
- NULL value for address and some value for milli
|
||||
- NOT NULL values for address (when entered)
|
||||
- and min
|
||||
- and max value for milli
|
||||
- NOT NULL values for address (when non-entered) and some value for milli
|
||||
|
||||
Method:
|
||||
NS_IMETHOD Notify(void* address);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NOT NULL values in cases when this monitor
|
||||
- isn't entered by this thread
|
||||
- is already entered by this thread and there are waiting threads
|
||||
- is already entered by this thread and there are not waiting threads
|
||||
|
||||
Method:
|
||||
NS_IMETHOD NotifyAll(void* address);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NOT NULL values in cases when this monitor
|
||||
- isn't entered by this thread
|
||||
- is already entered by this thread and there are waiting threads
|
||||
- is already entered by this thread and there are not waiting threads
|
||||
|
||||
Method:
|
||||
NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable);
|
||||
|
||||
Number of test cases that can be written: 4
|
||||
Test cases will be written with NULL and NOT NULL values for threadID and NULL and NOT NULL
|
||||
values for runnable.
|
||||
|
||||
Method:
|
||||
NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async);
|
||||
|
||||
Number of test cases that can be written: 6
|
||||
Test cases will be written with:
|
||||
threadID: for existent and not-existent thread
|
||||
runnable: NULL and NOT NULL
|
||||
async: true and false
|
||||
|
||||
Total number of test cases for this Interface : 30
|
||||
|
||||
|
||||
<a name="nsIJVMPluginTagInfo"></a><b>Interface : nsIJVMPluginTagInfo</b>
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetCode(const char* *result);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when return value
|
||||
- should be empty
|
||||
- and non-empty
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetCodeBase(const char* *result);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when return value
|
||||
- should be empty
|
||||
- and non-empty
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetArchive(const char* *result);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when return value
|
||||
- should be empty
|
||||
- and non-empty
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetName(const char* *result);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when return value
|
||||
- should be empty
|
||||
- and non-empty
|
||||
|
||||
Method:
|
||||
NS_IMETHOD GetMayScript(PRBool *result);
|
||||
|
||||
Number of test cases that can be written: 3
|
||||
Test cases will be written with
|
||||
- NULL value
|
||||
- NON NULL value in cases when return value
|
||||
- should be true
|
||||
- and false
|
||||
|
||||
Total number of test cases for this Interface : 15
|
||||
|
||||
|
||||
|
||||
|
||||
<pre>
|
||||
</body>
|
||||
</html>
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1,106 +0,0 @@
|
|||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
||||
<meta name="GENERATOR" content="Mozilla/4.7 [en] (WinNT; I) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>
|
||||
OJI API test specification</h2>
|
||||
|
||||
<h3>
|
||||
Goals:</h3>
|
||||
The goals of the tests are to check the stability and correctnesses of
|
||||
the implementation of the OJI API and to detect its errors.
|
||||
<h3>
|
||||
Objects to be tested:</h3>
|
||||
The OJI exported interfaces are implemented by OJI mozilla module
|
||||
or by JavaPlugin itself. Due to time/resources constrains we need to prioritize
|
||||
the interfaces to be tested. The Java Plugin is like to be "third party
|
||||
product" and are supposed to be tested by team that had produced
|
||||
it. So the first priority should be assign to interfaces implemented
|
||||
by OJI mozilla module.
|
||||
<pre>OJI mozilla module interfaces:</pre>
|
||||
|
||||
<table BORDER COLS=2 WIDTH="100%" >
|
||||
<tr>
|
||||
<td><a href="OjiAPITestcases_oji.html#nsIJVMManager">nsIJVMManager</a></td>
|
||||
|
||||
<td ROWSPAN="3">all 3 are implemented by class nsJVMManager</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="OjiAPITestcases_oji.html#nsIThreadManager">nsIThreadManager</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="OjiAPITestcases_oji.html#nsILiveConnectManager">nsILiveConnectManager</a></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="OjiAPITestcases_oji.html#nsIJVMPluginTagInfo">nsIJVMPluginTagInfo</a></td>
|
||||
|
||||
<td>implemented by class nsJVMPluginTagInfo</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="OjiAPITestcases_oji_JNIEnv.html">JNIEnv</a></td>
|
||||
|
||||
<td>implemented by class ProxyJNIEnv and returned by nsIJVMManager::CreateProxyJNI.
|
||||
It is used by LiveConnect and by other Blackwood modules</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<pre>Java Plugin interfaces:</pre>
|
||||
|
||||
<table BORDER COLS=1 WIDTH="50%" >
|
||||
<tr>
|
||||
<td>nsIJVMPlugin</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsIJVMConsole</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsIJVMPrefsWindow</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsIJVMWindow</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsISecureEnv</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsISecureJNI</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsISecureJNI2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>nsIJVMPluginInstance</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>
|
||||
<br>
|
||||
Common tests details:</h3>
|
||||
The tests organization should allow to run the tests:<br>
|
||||
- individually<br>
|
||||
- by interface related group<br>
|
||||
- all<br>
|
||||
- arbitrary selected set
|
||||
<p>Due to the fact that the number of the specified tests is about 1000
|
||||
and they can be ran during one night it is not supposed to select the acceptance
|
||||
set of the tests.
|
||||
<br>
|
||||
<br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
|
@ -1,786 +0,0 @@
|
|||
<html><head><title>
|
||||
OJI API Tests Descriptions
|
||||
</title></head><body bgcolor="white">
|
||||
<center><h1>
|
||||
OJI API Tests Descriptions
|
||||
</h1>
|
||||
<hr noshade>
|
||||
<table bgcolor="lightgreen" border=1 cellpadding=5>
|
||||
<tr bgcolor="lightblue">
|
||||
<td>Test Name</td>
|
||||
<td>Testing Method</td>
|
||||
<td>Parameters</td>
|
||||
<td>Description</td></tr>
|
||||
|
||||
<!--Total files: 5-->
|
||||
<tr><td><a name="LCM_InitLiveConnectClasses_1">LCM_InitLiveConnectClasses_1</a></td><td> Initializes a JSContext with the proper LiveConnect support classes. <hr>NS_IMETHOD InitLiveConnectClasses(JSContext* context, JSObject* globalObject) </td><td>(nsnull, nsnull)</td><td>Method should fail because parameters are invalid (NULLs).</td></tr>
|
||||
<tr><td><a name="LCM_IsLiveConnectEnabled_1">LCM_IsLiveConnectEnabled_1</a></td><td> Indicates whether LiveConnect can be used. <hr>NS_IMETHOD IsLiveConnectEnabled(PRBool& outEnabled) </td><td>(*out)</td><td>Method should fail because no memory is allocated for the result value.</td></tr>
|
||||
<tr><td><a name="LCM_IsLiveConnectEnabled_2">LCM_IsLiveConnectEnabled_2</a></td><td> Indicates whether LiveConnect can be used. <hr>NS_IMETHOD IsLiveConnectEnabled(PRBool& outEnabled) </td><td>(out)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="LCM_ShutdownLiveConnect_1">LCM_ShutdownLiveConnect_1</a></td><td> Attempts to stop LiveConnect using the specified JSRuntime. <hr>NS_IMETHOD ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown) </td><td>(nsnull, *out)</td><td>Method should fail because no memory is allocated for the result value (PRBool *out = nsnull;)</td></tr>
|
||||
<tr><td><a name="LCM_ShutdownLiveConnect_2"> LCM_ShutdownLiveConnect_2</a></td><td> Attempts to stop LiveConnect using the specified JSRuntime. <hr>NS_IMETHOD ShutdownLiveConnect(JSRuntime* runtime, PRBool& outShutdown) </td><td>(nsnull, out)</td><td>Method should fail because first parameter is incorrect (NULL).</td></tr>
|
||||
<tr><td><a name="LCM_StartupLiveConnect_1">LCM_StartupLiveConnect_1</a></td><td> Attempts to start LiveConnect using the specified JSRuntime. <hr>NS_IMETHOD StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted) </td><td>(nsnull, *out)</td><td>Method should fail because no memory is allocated for the result value.</td></tr>
|
||||
<tr><td><a name="LCM_StartupLiveConnect_2">LCM_StartupLiveConnect_2</a></td><td> Attempts to start LiveConnect using the specified JSRuntime. <hr>NS_IMETHOD StartupLiveConnect(JSRuntime* runtime, PRBool& outStarted) </td><td>(nsnull, out)</td><td>Method should fail because first parameter is invalid.</td></tr>
|
||||
<tr><td><a name="LCM_WrapJavaObject_1">LCM_WrapJavaObject_1</a></td><td> Creates a JavaScript wrapper for a Java object. <hr>NS_IMETHOD WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject) </td><td>(nsnull, nsnull, nsnull)</td><td>Method should fail because all parametrs are invalid.</td></tr>
|
||||
<tr><td><a name="LCM_WrapJavaObject_2">LCM_WrapJavaObject_2</a></td><td> Creates a JavaScript wrapper for a Java object. <hr>NS_IMETHOD WrapJavaObject(JSContext* context, jobject javaObject, JSObject* *outJSObject) </td><td>(nsnull, nsnull, &out)</td><td>Method should fail because first two parametrs are invalid.</td></tr>
|
||||
|
||||
<!--Total files: 4-->
|
||||
<tr><td><a name="JVMManager_CreateProxyJNI_1">JVMManager_CreateProxyJNI_1</a></td><td> Creates a proxy JNI with an optional secure environment (which can be NULL). There is a one-to-one correspondence between proxy JNIs and threads, so calling this method multiple times from the same thread will return the same proxy JNI. <br> [noscript] void CreateProxyJNI (in nsISecureEnv secureEnv, out JNIEnv outProxyEnv); <hr>NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv)</td><td>(nsnull, &jniEnv)</td><td>First paramenter CAN be NULL.</td></tr>
|
||||
<tr><td><a name="JVMManager_CreateProxyJNI_2">JVMManager_CreateProxyJNI_2</a></td><td> Creates a proxy JNI with an optional secure environment (which can be NULL). There is a one-to-one correspondence between proxy JNIs and threads, so calling this method multiple times from the same thread will return the same proxy JNI. <br> [noscript] void CreateProxyJNI (in nsISecureEnv secureEnv, out JNIEnv outProxyEnv); <hr>NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv)</td><td>(nsnull, nsnull)</td><td>Method should fail because no space is allocated for the result pointer.</td></tr>
|
||||
<tr><td><a name="JVMManager_CreateProxyJNI_3">JVMManager_CreateProxyJNI_3</a></td><td> Creates a proxy JNI with an optional secure environment (which can be NULL). There is a one-to-one correspondence between proxy JNIs and threads, so calling this method multiple times from the same thread will return the same proxy JNI. <br> [noscript] void CreateProxyJNI (in nsISecureEnv secureEnv, out JNIEnv outProxyEnv); <hr>NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv)</td><td>(secureEnv, nsnull)</td><td>Method should fail because no space is allocated for the result pointer.</td></tr>
|
||||
<tr><td><a name="JVMManager_CreateProxyJNI_4">JVMManager_CreateProxyJNI_4</a></td><td> Creates a proxy JNI with an optional secure environment (which can be NULL). There is a one-to-one correspondence between proxy JNIs and threads, so calling this method multiple times from the same thread will return the same proxy JNI. <br> [noscript] void CreateProxyJNI (in nsISecureEnv secureEnv, out JNIEnv outProxyEnv); <hr>NS_IMETHOD CreateProxyJNI(nsISecureEnv *secureEnv, JNIEnv * *outProxyEnv)</td><td>(secureEnv, &jniEnv)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="JVMManager_GetProxyJNI_1">JVMManager_GetProxyJNI_1</a></td><td> Returns the proxy JNI associated with the current thread, or NULL if no such association exists. <br> [noscript] void GetProxyJNI (out JNIEnv outProxyEnv); <hr>NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv)</td><td>(nsnull)</td><td>Method should fail because no space is allocated for the result pointer.</td></tr>
|
||||
<tr><td><a name="JVMManager_GetProxyJNI_2">JVMManager_GetProxyJNI_2</a></td><td> Returns the proxy JNI associated with the current thread, or NULL if no such association exists. <br> [noscript] void GetProxyJNI (out JNIEnv outProxyEnv); <hr>NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv)</td><td>(&jniEnv)</td><td>Method should work OK though we didn't call CreateProxyJNI before.</td></tr>
|
||||
<tr><td><a name="JVMManager_GetProxyJNI_3">JVMManager_GetProxyJNI_3</a></td><td> Returns the proxy JNI associated with the current thread, or NULL if no such association exists. <br> [noscript] void GetProxyJNI (out JNIEnv outProxyEnv); <hr>NS_IMETHOD GetProxyJNI(JNIEnv * *outProxyEnv)</td><td>(&jniEnv)</td><td>Before calling GetProxyJNI CreateProxyJNI method is called.</td></tr>
|
||||
<tr><td><a name="JVMManager_IsJavaEnabled_1">JVMManager_IsJavaEnabled_1</a></td><td> Returns whether or not Java is enabled. <br> void IsJavaEnabled (out boolean outEnabled); <hr>NS_IMETHOD IsJavaEnabled(PRBool *outEnabled)</td><td>(nsnull)</td><td>Method should fail because no space is allocated for the result pointer.</td></tr>
|
||||
<tr><td><a name="JVMManager_IsJavaEnabled_2">JVMManager_IsJavaEnabled_2</a></td><td> Returns whether or not Java is enabled. <br> void IsJavaEnabled (out boolean outEnabled); <hr>NS_IMETHOD IsJavaEnabled(PRBool *outEnabled)</td><td>(&b)</td><td>Should PASS if security.enable_java property is set to true or ommited.</td></tr>
|
||||
<tr><td><a name="JVMManager_IsJavaEnabled_3">JVMManager_IsJavaEnabled_3</a></td><td> Returns whether or not Java is enabled. <br> void IsJavaEnabled (out boolean outEnabled); <hr>NS_IMETHOD IsJavaEnabled(PRBool *outEnabled)</td><td>(&b)</td><td>Should PASS if security.enable_java property is set to false.</td></tr>
|
||||
<tr><td><a name="JVMManager_ShowJavaConsole_1">JVMManager_ShowJavaConsole_1</a></td><td> Called from Java Console menu item. <br> void ShowJavaConsole (); <hr>NS_IMETHOD ShowJavaConsole(void)</td><td>()</td><td>CreateProxyJNI is called before ShowJavaConsole.</td></tr>
|
||||
<tr><td><a name="JVMManager_ShowJavaConsole_2">JVMManager_ShowJavaConsole_2</a></td><td> Called from Java Console menu item. <br> void ShowJavaConsole (); <hr>NS_IMETHOD ShowJavaConsole(void)</td><td>()</td><td>Method should work OK, though CreateProxyJNI wasn't called before.</td></tr>
|
||||
|
||||
<!--Total files: 9-->
|
||||
<tr><td><a name="ThreadManager_CreateThread_1">ThreadManager_CreateThread_1</a></td><td> Creates a new thread, calling the specified runnable's Run method (a la Java). <hr>NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable) </td><td>(NULL, NULL)</td><td>Method should fail because no nsIRunnable object is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_CreateThread_2">ThreadManager_CreateThread_2</a></td><td> Creates a new thread, calling the specified runnable's Run method (a la Java). <hr>NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable) </td><td>(&id, NULL)</td><td>Method should fail because no nsIRunnable object is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_CreateThread_3">ThreadManager_CreateThread_3</a></td><td> Creates a new thread, calling the specified runnable's Run method (a la Java). <hr>NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable) </td><td>(NULL, (nsIRunnable*)dt)</td><td>Method should fail because no space is allocated for thread id.</td></tr>
|
||||
<tr><td><a name="ThreadManager_CreateThread_4">ThreadManager_CreateThread_4</a></td><td> Creates a new thread, calling the specified runnable's Run method (a la Java). <hr>NS_IMETHOD CreateThread(PRUint32* threadID, nsIRunnable* runnable) </td><td>(&id, (nsIRunnable*)dt)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_EnterMonitor_1">ThreadManager_EnterMonitor_1</a></td><td> Creates a unique monitor for the specified address, and makes the current system thread the owner of the monitor. <hr>NS_IMETHOD EnterMonitor(void* address) </td><td>(NULL)</td><td>Method shoulf fail because invalid (NULL) adress is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_EnterMonitor_2">ThreadManager_EnterMonitor_2</a></td><td> Creates a unique monitor for the specified address, and makes the current system thread the owner of the monitor. <hr>NS_IMETHOD EnterMonitor(void* address) </td><td>(threadMgr)</td><td>Current thread can enter monitor even if no other thread we created.</td></tr>
|
||||
<tr><td><a name="ThreadManager_EnterMonitor_3">ThreadManager_EnterMonitor_3</a></td><td> Creates a unique monitor for the specified address, and makes the current system thread the owner of the monitor. <hr>NS_IMETHOD EnterMonitor(void* address) </td><td>(threadMgr)</td><td>One thread can enter monitor twice.</td></tr>
|
||||
<tr><td><a name="ThreadManager_EnterMonitor_4">ThreadManager_EnterMonitor_4</a></td><td> Creates a unique monitor for the specified address, and makes the current system thread the owner of the monitor. <hr>NS_IMETHOD EnterMonitor(void* address) </td><td>(tm)</td><td>Another thread can't enter monitor locked by current thread.</td></tr>
|
||||
<tr><td><a name="ThreadManager_ExitMonitor_1">ThreadManager_ExitMonitor_1</a></td><td> Exits the monitor associated with the address. <hr>NS_IMETHOD ExitMonitor(void* address) </td><td>(NULL)</td><td>Method should fail because adress is invalid (NULL).</td></tr>
|
||||
<tr><td><a name="ThreadManager_ExitMonitor_2">ThreadManager_ExitMonitor_2</a></td><td> Exits the monitor associated with the address. <hr>NS_IMETHOD ExitMonitor(void* address) </td><td>(threadMgr)</td><td>Thread can exit monitor even if it doesn't own it.</td></tr>
|
||||
<tr><td><a name="ThreadManager_ExitMonitor_3">ThreadManager_ExitMonitor_3</a></td><td> Exits the monitor associated with the address. <hr>NS_IMETHOD ExitMonitor(void* address) </td><td>(threadMgr)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_ExitMonitor_4">ThreadManager_ExitMonitor_4</a></td><td> Exits the monitor associated with the address. <hr>NS_IMETHOD ExitMonitor(void* address) </td><td>(threadMgr)</td><td>Another thread CAN enter monitor if the current thread unlock it.</td></tr>
|
||||
<tr><td><a name="ThreadManager_GetCurrentThread_2">ThreadManager_GetCurrentThread_2</a></td><td> Returns a unique identifier for the "current" system thread. <hr>NS_IMETHOD GetCurrentThread(nsPluginThread* *threadID) </td><td>(NULL)</td><td>Method should fail because no memory is allocated for the result pointer.</td></tr>
|
||||
<tr><td><a name="ThreadManager_GetCurrentThread_1">ThreadManager_GetCurrentThread_1</a></td><td> Returns a unique identifier for the "current" system thread. <hr>NS_IMETHOD GetCurrentThread(nsPluginThread* *threadID) </td><td>(nsPluginThread**)&id)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Notify_1">ThreadManager_Notify_1</a></td><td> Notifies a single thread waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD Notify(void* address) </td><td>(NULL)</td><td>Method should fail because adress is invalid (NULL)</td></tr>
|
||||
<tr><td><a name="ThreadManager_Notify_2">ThreadManager_Notify_2</a></td><td> Notifies a single thread waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD Notify(void* address) </td><td>(threadMgr)</td><td>Method should fail because it can call Notify only being monitor's owner.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Notify_3">ThreadManager_Notify_3</a></td><td> Notifies a single thread waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD Notify(void* address) </td><td>(threadMgr)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Notify_4">ThreadManager_Notify_4</a></td><td> Notifies a single thread waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD Notify(void* address) </td><td>(threadMgr)</td><td>Method should work even if there are no other threads waiting on monitor.</td></tr>
|
||||
<tr><td><a name="ThreadManager_NotifyAll_1">ThreadManager_NotifyAll_1</a></td><td> Notifies all threads waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD NotifyAll(void* address) </td><td>(NULL)</td><td>Method should fail because adress is invalid (NULL)</td></tr>
|
||||
<tr><td><a name="ThreadManager_NotifyAll_2">ThreadManager_NotifyAll_2</a></td><td> Notifies all threads waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD NotifyAll(void* address) </td><td>(threadMgr)</td><td>Method should fail because it can call Notify only being monitor's owner.</td></tr>
|
||||
<tr><td><a name="ThreadManager_NotifyAll_3">ThreadManager_NotifyAll_3</a></td><td> Notifies all threads waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD NotifyAll(void* address) </td><td>(threadMgr)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_NotifyAll_4">ThreadManager_NotifyAll_4</a></td><td> Notifies all threads waiting on the monitor associated with the address (must be entered already). <hr>NS_IMETHOD NotifyAll(void* address) </td><td>(threadMgr)</td><td>Method should work even if there are no other threads waiting on monitor.</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_1">ThreadManager_PostEvent_1</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(*id, NULL, (PRBool)0)</td><td>Method should fail because thread's id is specified incorrectly (PRUint32 *id = NULL;)</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_2">ThreadManager_PostEvent_2</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(id, NULL, (PRBool)0)</td><td>Method should fail because no object to be invoked from thread is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_3">ThreadManager_PostEvent_3</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(id, NULL, (PRBool)1)</td><td>Method should fail because no object to be invoked from thread is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_5">ThreadManager_PostEvent_5</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(PRUint32)pt, re, (PRBool)0)</td><td>Method should fail because thtread doesn't exist (PRThread *pt;)</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_6">ThreadManager_PostEvent_6</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(id, rEvent, (PRBool)1)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_PostEvent_7">ThreadManager_PostEvent_7</a></td><td> Posts an event to specified thread, calling the runnable from that thread. <br>@param threadID thread to call runnable from <br>@param runnable object to invoke from thread <br>@param async if true, won't block current thread waiting for result <hr>NS_IMETHOD PostEvent(PRUint32 threadID, nsIRunnable* runnable, PRBool async) </td><td>(id, rEvent, (PRBool)0)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Sleep_1">ThreadManager_Sleep_1</a></td><td> Pauses the current thread for the specified number of milliseconds. If milli is zero, then merely yields the CPU if another thread of greater or equal priority. <hr>NS_IMETHOD Sleep(PRUint32 milli = 0) </td><td>(0)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Sleep_2">ThreadManager_Sleep_2</a></td><td> Pauses the current thread for the specified number of milliseconds. If milli is zero, then merely yields the CPU if another thread of greater or equal priority. <hr>NS_IMETHOD Sleep(PRUint32 milli = 0) </td><td>(UINT_MAX)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Wait_1">ThreadManager_Wait_1</a></td><td> Waits on the monitor associated with the address (must be entered already). If milli is 0, wait indefinitely. <hr>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) </td><td>(NULL, (PRUint32)100)</td><td>Method should fail because invalid adress (NULL) is specified.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Wait_2">ThreadManager_Wait_2</a></td><td> Waits on the monitor associated with the address (must be entered already). If milli is 0, wait indefinitely. <hr>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) </td><td>(threadMgr, (PRUint32)UINT_MAX)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Wait_3">ThreadManager_Wait_3</a></td><td> Waits on the monitor associated with the address (must be entered already). If milli is 0, wait indefinitely. <hr>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) </td><td>(threadMgr, (PRUint32)0)</td><td>Method should work OK.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Wait_4">ThreadManager_Wait_4</a></td><td> Waits on the monitor associated with the address (must be entered already). If milli is 0, wait indefinitely. <hr>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) </td><td>(threadMgr, (PRUint32)100)</td><td>Method should fail because current thread doesn't own monitor.</td></tr>
|
||||
<tr><td><a name="ThreadManager_Wait_5">ThreadManager_Wait_5</a></td><td> Waits on the monitor associated with the address (must be entered already). If milli is 0, wait indefinitely. <hr>NS_IMETHOD Wait(void* address, PRUint32 milli = 0) </td><td>(tm)</td><td>Method should work OK.</td></tr>
|
||||
<!--Total files: 122-->
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_1">JNIEnv_GetBooleanField_1</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetBooleanField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_2">JNIEnv_GetBooleanField_2</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetBooleanField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_3">JNIEnv_GetBooleanField_3</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetBooleanField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_4">JNIEnv_GetBooleanField_4</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetBooleanField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_5">JNIEnv_GetBooleanField_5</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetBooleanField with val == JNI_TRUE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanField_6">JNIEnv_GetBooleanField_6</a></td><td> jboolean GetBooleanField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetBooleanField with val == JNI_FALSE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_1">JNIEnv_GetByteField_1</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetByteField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_2">JNIEnv_GetByteField_2</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetByteField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_3">JNIEnv_GetByteField_3</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetByteField with fieldID = (jfieldID)=100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_4">JNIEnv_GetByteField_4</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetByteField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_5">JNIEnv_GetByteField_5</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetByteField with val == MIN_JBYTE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteField_6">JNIEnv_GetByteField_6</a></td><td> jbyte GetByteField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetByteField with val == MAX_JBYTE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharField_1">JNIEnv_GetCharField_1</a></td><td> jchar GetCharField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetCharField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharField_2">JNIEnv_GetCharField_2</a></td><td> jchar GetCharField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetCharField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharField_3">JNIEnv_GetCharField_3</a></td><td> jchar GetCharField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetCharField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharField_4">JNIEnv_GetCharField_4</a></td><td> jchar GetCharField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetCharField with fieldID = (jfieldID) return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharField_5">JNIEnv_GetCharField_5</a></td><td> jchar GetCharField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetCharField(all correct) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_1">JNIEnv_GetDoubleField_1</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetDoubleField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_2">JNIEnv_GetDoubleField_2</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetDoubleField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_3">JNIEnv_GetDoubleField_3</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetDoubleField with fieldID = (jfiledID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_4">JNIEnv_GetDoubleField_4</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetDoubleField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_5">JNIEnv_GetDoubleField_5</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetDoubleField with val == MIN_JDOUBLE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleField_6">JNIEnv_GetDoubleField_6</a></td><td> jdouble GetDoubleField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetDoubleField with val == MAX_JDOUBLE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_1">JNIEnv_GetFieldID_1</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>(NULL, "name_int", "I")</td><td>GetFieldID(class=NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_10">JNIEnv_GetFieldID_10</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_double", "D")</td><td>GetFieldID(all right for double) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_11">JNIEnv_GetFieldID_11</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_float", "F")</td><td>GetFieldID(all right for float) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_12">JNIEnv_GetFieldID_12</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_char", "C")</td><td>GetFieldID(all right for char) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_13">JNIEnv_GetFieldID_13</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_bool", "Z")</td><td>GetFieldID(all right for boolean) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_14">JNIEnv_GetFieldID_14</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_string", "Ljava/lang/String;")</td><td>GetFieldID(all right for object (java/lang/String)) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_15">JNIEnv_GetFieldID_15</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int_arr", "[I")</td><td>GetFieldID(all right for array) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_16">JNIEnv_GetFieldID_16</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int_super", "I")</td><td>GetFieldID(all right for super int) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_17">JNIEnv_GetFieldID_17</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_string_super", "Ljava/lang/String;")</td><td>GetFieldID(all right for super object (java/lang/String)) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_18">JNIEnv_GetFieldID_18</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "int_field", "I")</td><td>GetFieldID(all right for private int) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_19">JNIEnv_GetFieldID_19</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int_not_exist", "I")</td><td>GetFieldID(with incorrect name of field) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_2">JNIEnv_GetFieldID_2</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( NULL, "I")</td><td>GetFieldID(name_of_param= NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_20">JNIEnv_GetFieldID_20</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "final_int", "I")</td><td>GetFieldID(all right for final int) passed - exception thrown</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_3">JNIEnv_GetFieldID_3</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "", "I")</td><td>GetFieldID(name_of_param = empty) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_4">JNIEnv_GetFieldID_4</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int", "")</td><td>GetFieldID(sig = empty) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_5">JNIEnv_GetFieldID_5</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int", NULL)</td><td>GetFieldID(sig = NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_6">JNIEnv_GetFieldID_6</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_byte", "B")</td><td>GetFieldID(all right for byte) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_7">JNIEnv_GetFieldID_7</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_int", "I")</td><td>GetFieldID(all right for int) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_8">JNIEnv_GetFieldID_8</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_short", "S")</td><td>GetFieldID(all right for short) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFieldID_9">JNIEnv_GetFieldID_9</a></td><td> jfieldID GetFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "name_long", "J")</td><td>GetFieldID(all right for long) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_1">JNIEnv_GetFloatField_1</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetFloatField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_2">JNIEnv_GetFloatField_2</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetFloatField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_3">JNIEnv_GetFloatField_3</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetFloatField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_4">JNIEnv_GetFloatField_4</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetFloatField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_5">JNIEnv_GetFloatField_5</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetFloatField with val == MIN_JFLOAT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatField_6">JNIEnv_GetFloatField_6</a></td><td> jfloat GetFloatField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetFloatField with val == MAX_JFLOAT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_1">JNIEnv_GetIntField_1</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetIntField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_2">JNIEnv_GetIntField_2</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetIntField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_3">JNIEnv_GetIntField_3</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetIntField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_4">JNIEnv_GetIntField_4</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetIntField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_5">JNIEnv_GetIntField_5</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetIntField with val == MIN_JINT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_6">JNIEnv_GetIntField_6</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>()</td><td>GetField for array passed!\n</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntField_7">JNIEnv_GetIntField_7</a></td><td> jint GetIntField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetIntField with val == MAX_JINT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_1">JNIEnv_GetLongField_1</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetLongField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_2">JNIEnv_GetLongField_2</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetLongField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_3">JNIEnv_GetLongField_3</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetLongField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_4">JNIEnv_GetLongField_4</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetLongField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_5">JNIEnv_GetLongField_5</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetLongField with val == MIN_JLONG return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongField_6">JNIEnv_GetLongField_6</a></td><td> jlong GetLongField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetLongField with val == MAX_JLONG return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectField_1">JNIEnv_GetObjectField_1</a></td><td> jobject GetObjectField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetObjectField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectField_2">JNIEnv_GetObjectField_2</a></td><td> jobject GetObjectField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetObjectField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectField_3">JNIEnv_GetObjectField_3</a></td><td> jobject GetObjectField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetObjectField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectField_4">JNIEnv_GetObjectField_4</a></td><td> jobject GetObjectField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetObjectField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectField_5">JNIEnv_GetObjectField_5</a></td><td> jobject GetObjectField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetObjectField(all correct) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_1">JNIEnv_GetShortField_1</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetShortField with obj = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_2">JNIEnv_GetShortField_2</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(obj, NULL)</td><td>GetShortField with fieldID = NULL return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_3">JNIEnv_GetShortField_3</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)-100)</td><td>GetShortField with fieldID = (jfieldID)-100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_4">JNIEnv_GetShortField_4</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(obj, (jfieldID)100)</td><td>GetShortField with fieldID = (jfieldID)100 return correct value - do not crash</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_5">JNIEnv_GetShortField_5</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetShortField with val == MIN_JSHORT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortField_6">JNIEnv_GetShortField_6</a></td><td> jshort GetShortField(jobject obj, jfieldID fieldID) </td><td>(obj, fieldID)</td><td>GetShortField with val == MAX_JSHORT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_1">JNIEnv_SetBooleanField_1</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(NULL, fieldID, TRUE)</td><td>SetBooleanField(obj = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_2">JNIEnv_SetBooleanField_2</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, (jfieldID)-100, TRUE)</td><td>SetBooleanField(fieldID = (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_3">JNIEnv_SetBooleanField_3</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, (jfieldID)100, TRUE)</td><td>SetBooleanField(fieldID = (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_4">JNIEnv_SetBooleanField_4</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, NULL, TRUE)</td><td>SetBooleanField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_5">JNIEnv_SetBooleanField_5</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, fieldID, JNI_FALSE)</td><td>SetBooleanField(all correct, value = JNI_FALSE) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_6">JNIEnv_SetBooleanField_6</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, fieldID, TRUE)</td><td>SetBooleanField(all correct, value = JNI_TRUE) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanField_7">JNIEnv_SetBooleanField_7</a></td><td> void SetBooleanField(jobject obj, jfieldID fieldID, jboolean val) </td><td>(obj, fieldID, FALSE)</td><td>SetBooleanField(all correct, value = JNI_FALSE) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_1">JNIEnv_SetByteField_1</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(NULL, fieldID,1)</td><td>SetByteField(obj = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_2">JNIEnv_SetByteField_2</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetByteField(fieldID = (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_3">JNIEnv_SetByteField_3</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetByteField(fieldID = (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_4">JNIEnv_SetByteField_4</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(obj, NULL, 1)</td><td>SetByteField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_5">JNIEnv_SetByteField_5</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(obj, fieldID, (jbyte)-1)</td><td>SetByteField(all correct, value = 1) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteField_6">JNIEnv_SetByteField_6</a></td><td> void SetByteField(jobject obj, jfieldID fieldID, jbyte val) </td><td>(obj, fieldID, 1)</td><td>SetByteField(all correct, value = 1) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_1">JNIEnv_SetCharField_1</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(NULL, fieldID, 'a')</td><td>SetCharField(obi = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_2">JNIEnv_SetCharField_2</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(obj, (jfieldID)100, 'a')</td><td>SetCharField(fieldID = (jfieldID)100) do not crush - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_3">JNIEnv_SetCharField_3</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(obj, (jfieldID)-100, 'a')</td><td>SetCharField(fieldID = (jfieldID)-100) do not crush - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_4">JNIEnv_SetCharField_4</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(obj, NULL, 'a')</td><td>SetCharField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_5">JNIEnv_SetCharField_5</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(obj, fieldID, (jchar)NULL)</td><td>SetCharField(all correct, value = NULL) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharField_6">JNIEnv_SetCharField_6</a></td><td> void SetCharField(jobject obj, jfieldID fieldID, jchar val) </td><td>(obj, fieldID, 'a')</td><td>SetCharField(all correct, value = a) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_1">JNIEnv_SetDoubleField_1</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(NULL, fieldID, 1)</td><td>SetDoubleField(obj == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_2">JNIEnv_SetDoubleField_2</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetDoubleField(fieldID = (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_3">JNIEnv_SetDoubleField_3</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetDoubleField(fieldID = (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_4">JNIEnv_SetDoubleField_4</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(obj, NULL, 1)</td><td>SetDoubleField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_5">JNIEnv_SetDoubleField_5</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(obj, fieldID, (jdouble)10)</td><td>SetDoubleField(all correct) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleField_6">JNIEnv_SetDoubleField_6</a></td><td> void SetDoubleField(jobject obj, jfieldID fieldID, jdouble val) </td><td>(obj, fieldID, -100)</td><td>SetDoubleField(all correct) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatField_1">JNIEnv_SetFloatField_1</a></td><td> void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) </td><td>(NULL, fieldID, 1)</td><td>SetFloatField(obj == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatField_2">JNIEnv_SetFloatField_2</a></td><td> void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetFloatField(fieldID = (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatField_3">JNIEnv_SetFloatField_3</a></td><td> void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetFloatField(fieldID = (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatField_4">JNIEnv_SetFloatField_4</a></td><td> void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) </td><td>(obj, NULL, 1)</td><td>SetFloatField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatField_5">JNIEnv_SetFloatField_5</a></td><td> void SetFloatField(jobject obj, jfieldID fieldID, jfloat val) </td><td>(obj, fieldID, 1)</td><td>SetFloatField(all correct) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntField_1">JNIEnv_SetIntField_1</a></td><td> void SetIntField(jobject obj, jfieldID fieldID, jint val) </td><td>(NULL, fieldID, 1)</td><td>SetIntField(obj == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntField_2">JNIEnv_SetIntField_2</a></td><td> void SetIntField(jobject obj, jfieldID fieldID, jint val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetIntField(fieldID = (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntField_3">JNIEnv_SetIntField_3</a></td><td> void SetIntField(jobject obj, jfieldID fieldID, jint val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetIntField(fieldID = (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntField_4">JNIEnv_SetIntField_4</a></td><td> void SetIntField(jobject obj, jfieldID fieldID, jint val) </td><td>(obj, NULL, 1)</td><td>SetIntField(fieldID = NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntField_5">JNIEnv_SetIntField_5</a></td><td> void SetIntField(jobject obj, jfieldID fieldID, jint val) </td><td>(obj, fieldID, 1)</td><td>SetIntField(all correct) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongField_1">JNIEnv_SetLongField_1</a></td><td> void SetLongField(jobject obj, jfieldID fieldID, jlong val) </td><td>(NULL, fieldID, 1)</td><td>SetLongField(obj == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongField_2">JNIEnv_SetLongField_2</a></td><td> void SetLongField(jobject obj, jfieldID fieldID, jlong val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetLongField(fieldID == (fieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongField_3">JNIEnv_SetLongField_3</a></td><td> void SetLongField(jobject obj, jfieldID fieldID, jlong val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetLongField(fieldID == (fieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongField_4">JNIEnv_SetLongField_4</a></td><td> void SetLongField(jobject obj, jfieldID fieldID, jlong val) </td><td>(obj, NULL, 1)</td><td>SetLongField(fieldID == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongField_5">JNIEnv_SetLongField_5</a></td><td> void SetLongField(jobject obj, jfieldID fieldID, jlong val) </td><td>(obj, fieldID, 1)</td><td>SetLongField(all correct) set value to field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectField_1">JNIEnv_SetObjectField_1</a></td><td> void SetObjectField(jobject obj, jfieldID fieldID, jobject val) </td><td>(NULL, fieldID, arr)</td><td>SetObjectField(for obj = NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectField_2">JNIEnv_SetObjectField_2</a></td><td> void SetObjectField(jobject obj, jfieldID fieldID, jobject val) </td><td>(obj, (jfieldID)-100, arr)</td><td>SetObjectField(for fieldID = -100) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectField_3">JNIEnv_SetObjectField_3</a></td><td> void SetObjectField(jobject obj, jfieldID fieldID, jobject val) </td><td>(obj, (jfieldID)100, arr)</td><td>SetObjectField(for fieldID = 100) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectField_4">JNIEnv_SetObjectField_4</a></td><td> void SetObjectField(jobject obj, jfieldID fieldID, jobject val) </td><td>(obj, NULL, arr)</td><td>SetObjectField(for fieldID = NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectField_5">JNIEnv_SetObjectField_5</a></td><td> void SetObjectField(jobject obj, jfieldID fieldID, jobject val) </td><td>(obj, fieldID, NULL)</td><td>SetObjectField(object == NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortField_1">JNIEnv_SetShortField_1</a></td><td> void SetShortField(jobject obj, jfieldID fieldID, jshort val) </td><td>(NULL, fieldID, 1)</td><td>SetShortField(obj == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortField_2">JNIEnv_SetShortField_2</a></td><td> void SetShortField(jobject obj, jfieldID fieldID, jshort val) </td><td>(obj, (jfieldID)-100, 1)</td><td>SetShortField(with fieldID == (jfieldID)-100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortField_3">JNIEnv_SetShortField_3</a></td><td> void SetShortField(jobject obj, jfieldID fieldID, jshort val) </td><td>(obj, (jfieldID)100, 1)</td><td>SetShortField(with fieldID == (jfieldID)100) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortField_4">JNIEnv_SetShortField_4</a></td><td> void SetShortField(jobject obj, jfieldID fieldID, jshort val) </td><td>(obj, NULL, 1)</td><td>SetShortField(fieldID == NULL) do not set field - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortField_5">JNIEnv_SetShortField_5</a></td><td> void SetShortField(jobject obj, jfieldID fieldID, jshort val) </td><td>(obj, fieldID, 1)</td><td>SetShortField(all correct) set value to field - correct</td></tr>
|
||||
<!--Total files: 119-->
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_1">JNIEnv_GetStaticBooleanField_1</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticBooleanField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_2">JNIEnv_GetStaticBooleanField_2</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticBooleanField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_3">JNIEnv_GetStaticBooleanField_3</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticBooleanField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_4">JNIEnv_GetStaticBooleanField_4</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticBooleanField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_5">JNIEnv_GetStaticBooleanField_5</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticBooleanField with val == JNI_TRUE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticBooleanField_6">JNIEnv_GetStaticBooleanField_6</a></td><td> jboolean GetStaticBooleanField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticBooleanField with val == JNI_FALSE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_1">JNIEnv_GetStaticByteField_1</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticByteField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_2">JNIEnv_GetStaticByteField_2</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticByteField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_3">JNIEnv_GetStaticByteField_3</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticByteField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_4">JNIEnv_GetStaticByteField_4</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticByteField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_5">JNIEnv_GetStaticByteField_5</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticByteField with val == MIN_JBYTE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticByteField_6">JNIEnv_GetStaticByteField_6</a></td><td> jbyte GetStaticByteField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticByteField with val == MAX_JBYTE return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticCharField_1">JNIEnv_GetStaticCharField_1</a></td><td> jchar GetStaticCharField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticCharField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticCharField_2">JNIEnv_GetStaticCharField_2</a></td><td> jchar GetStaticCharField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticCharField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticCharField_3">JNIEnv_GetStaticCharField_3</a></td><td> jchar GetStaticCharField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticCharField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticCharField_4">JNIEnv_GetStaticCharField_4</a></td><td> jchar GetStaticCharField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticCharField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticCharField_5">JNIEnv_GetStaticCharField_5</a></td><td> jchar GetStaticCharField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticCharField(all correct) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticDoubleField_1">JNIEnv_GetStaticDoubleField_1</a></td><td> jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticDoubleField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticDoubleField_2">JNIEnv_GetStaticDoubleField_2</a></td><td> jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticDoubleField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticDoubleField_3">JNIEnv_GetStaticDoubleField_3</a></td><td> jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticDoubleField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticDoubleField_4">JNIEnv_GetStaticDoubleField_4</a></td><td> jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticDoubleField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticDoubleField_5">JNIEnv_GetStaticDoubleField_5</a></td><td> jdouble GetStaticDoubleField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticDoubleField(all correct) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_1">JNIEnv_GetStaticFieldID_1</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>(NULL, "static_name_int", "I" )</td><td>GetStaticFieldID with class == NULL return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_10">JNIEnv_GetStaticFieldID_10</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_long", "J")</td><td>GetStaticFieldID(all right for long) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_11">JNIEnv_GetStaticFieldID_11</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_double", "D")</td><td>GetStaticFieldID(all right for double) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_12">JNIEnv_GetStaticFieldID_12</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_char", "C")</td><td>GetStaticFieldID(all right for char) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_13">JNIEnv_GetStaticFieldID_13</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_float", "F")</td><td>GetStaticFieldID(all right for float) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_14">JNIEnv_GetStaticFieldID_14</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_string", "Ljava/lang/String;")</td><td>GetStaticFieldID(all right for object (string)) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_15">JNIEnv_GetStaticFieldID_15</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_int_arr", "[I")</td><td>GetStaticFieldID(all right for array) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_16">JNIEnv_GetStaticFieldID_16</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "public_static_super_int", "I")</td><td>GetStaticFieldID(all right for super int) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_17">JNIEnv_GetStaticFieldID_17</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "public_static_super_object", "Ljava/lang/String;")</td><td>GetStaticFieldID(all right for super public object (string)) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_18">JNIEnv_GetStaticFieldID_18</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_int_private", "I")</td><td>GetStaticFieldID(all right for private int) return correct value - exception thrown</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_19">JNIEnv_GetStaticFieldID_19</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_int", "")</td><td>GetStaticFieldID with empty sig return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_2">JNIEnv_GetStaticFieldID_2</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( NULL, "I")</td><td>GetStaticFieldID with param_name == NULL return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_20">JNIEnv_GetStaticFieldID_20</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_final_int", "I")</td><td>GetFieldID(all right for static final int) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_3">JNIEnv_GetStaticFieldID_3</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_int", NULL)</td><td>GetStaticFieldID with sig == NULL return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_4">JNIEnv_GetStaticFieldID_4</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_int", "J")</td><td>GetStaticFieldID with incorrect sig return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_5">JNIEnv_GetStaticFieldID_5</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_nameint", "I")</td><td>GetStaticFieldID with incorrect name return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_6">JNIEnv_GetStaticFieldID_6</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_final_int", "I")</td><td>GetFieldID(all right for static final int) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_7">JNIEnv_GetStaticFieldID_7</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_bool", "Z")</td><td>GetStaticFieldID(all right for boolean) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_8">JNIEnv_GetStaticFieldID_8</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_byte", "B")</td><td>GetStaticFieldID(all right for byte) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFieldID_9">JNIEnv_GetStaticFieldID_9</a></td><td> jfieldID GetStaticFieldID(jclass clazz, const char *name, const char *sig) </td><td>( "static_name_short", "S")</td><td>GetStaticFieldID(all right for short) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_1">JNIEnv_GetStaticFloatField_1</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticFloatField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_2">JNIEnv_GetStaticFloatField_2</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticFloatField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_3">JNIEnv_GetStaticFloatField_3</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticFloatField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_4">JNIEnv_GetStaticFloatField_4</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticFloatField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_5">JNIEnv_GetStaticFloatField_5</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticFloatField with val == MIN_JFLOAT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticFloatField_6">JNIEnv_GetStaticFloatField_6</a></td><td> jfloat GetStaticFloatField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticFloatField with val == MAX_JFLOAT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_1">JNIEnv_GetStaticIntField_1</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticIntField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_2">JNIEnv_GetStaticIntField_2</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticIntField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_3">JNIEnv_GetStaticIntField_3</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticIntField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_4">JNIEnv_GetStaticIntField_4</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticIntField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_5">JNIEnv_GetStaticIntField_5</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticIntField with val == MIN_JINT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticIntField_6">JNIEnv_GetStaticIntField_6</a></td><td> jint GetStaticIntField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticIntField with val == MAX_JINT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_1">JNIEnv_GetStaticLongField_1</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticLongField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_2">JNIEnv_GetStaticLongField_2</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticLongField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_3">JNIEnv_GetStaticLongField_3</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticLongField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_4">JNIEnv_GetStaticLongField_4</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticLongField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_5">JNIEnv_GetStaticLongField_5</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticLongField with val == MIN_JLONG return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticLongField_6">JNIEnv_GetStaticLongField_6</a></td><td> jlong GetStaticLongField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticLongField with val == MAX_JLONG return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticObjectField_1">JNIEnv_GetStaticObjectField_1</a></td><td> jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticObjectField(clazz == NULL) return NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticObjectField_2">JNIEnv_GetStaticObjectField_2</a></td><td> jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticObjectField(fieldID == NULL) return NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticObjectField_3">JNIEnv_GetStaticObjectField_3</a></td><td> jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticObjectField(fieldID is incorrect negative) return NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticObjectField_4">JNIEnv_GetStaticObjectField_4</a></td><td> jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticObjectField(fieldID is incorrect positive) return NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticObjectField_5">JNIEnv_GetStaticObjectField_5</a></td><td> jobject GetStaticObjectField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticObjectField(all right) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_1">JNIEnv_GetStaticShortField_1</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(NULL, fieldID)</td><td>GetStaticShortField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_2">JNIEnv_GetStaticShortField_2</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(clazz, NULL)</td><td>GetStaticShortField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_3">JNIEnv_GetStaticShortField_3</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)-100)</td><td>GetStaticShortField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_4">JNIEnv_GetStaticShortField_4</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(clazz, (jfieldID)100)</td><td>GetStaticShortField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_5">JNIEnv_GetStaticShortField_5</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticShortField with val == MIN_JSHORT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticShortField_6">JNIEnv_GetStaticShortField_6</a></td><td> jshort GetStaticShortField(jclass clazz, jfieldID fieldID) </td><td>(clazz, fieldID)</td><td>GetStaticShortField with val == MAX_JSHORT return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_1">JNIEnv_SetStaticBooleanField_1</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(NULL, fieldID, TRUE)</td><td>SetStaticBooleanField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_2">JNIEnv_SetStaticBooleanField_2</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(clazz, (jfieldID)-100, TRUE)</td><td>SetStaticBooleanField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_3">JNIEnv_SetStaticBooleanField_3</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(clazz, (jfieldID)100, TRUE)</td><td>SetStaticBooleanField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_4">JNIEnv_SetStaticBooleanField_4</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(clazz, NULL, TRUE)</td><td>SetStaticBooleanField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_5">JNIEnv_SetStaticBooleanField_5</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(clazz, fieldID, JNI_FALSE)</td><td>SetStaticBooleanField(all correct, value == JNI_FALSE) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticBooleanField_6">JNIEnv_SetStaticBooleanField_6</a></td><td> void SetStaticBooleanField(jclass clazz, jfieldID fieldID, jboolean value) </td><td>(clazz, fieldID, JNI_TRUE)</td><td>SetStaticBooleanField(all correct, value == JNI_TRUE) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_1">JNIEnv_SetStaticByteField_1</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(NULL, fieldID,1)</td><td>SetStaticByteField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_2">JNIEnv_SetStaticByteField_2</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticByteField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_3">JNIEnv_SetStaticByteField_3</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticByteField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_4">JNIEnv_SetStaticByteField_4</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(clazz, NULL, 1)</td><td>SetStaticByteField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_5">JNIEnv_SetStaticByteField_5</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(clazz, fieldID, (jbyte)10)</td><td>SetStaticByteField(all correct, value == 10) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticByteField_6">JNIEnv_SetStaticByteField_6</a></td><td> void SetStaticByteField(jclass clazz, jfieldID fieldID, jbyte value) </td><td>(clazz, fieldID, (jbyte)-10)</td><td>SetStaticByteField(all correct, value == -10) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_1">JNIEnv_SetStaticCharField_1</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(NULL, fieldID, 'a')</td><td>SetStaticCharField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_2">JNIEnv_SetStaticCharField_2</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(clazz, (jfieldID)100, 'a')</td><td>SetStaticCharField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_3">JNIEnv_SetStaticCharField_3</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(clazz, (jfieldID)-100, 'a')</td><td>SetStaticCharField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_4">JNIEnv_SetStaticCharField_4</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(clazz, NULL, 'a')</td><td>SetStaticCharField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_5">JNIEnv_SetStaticCharField_5</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(clazz, fieldID, (jchar)NULL)</td><td>SetStaticCharField(all correct, value == (jchar)NULL) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticCharField_6">JNIEnv_SetStaticCharField_6</a></td><td> void SetStaticCharField(jclass clazz, jfieldID fieldID, jchar value) </td><td>(clazz, fieldID, 'a')</td><td>SetStaticCharField(all correct, value == a) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_1">JNIEnv_SetStaticDoubleField_1</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(NULL, fieldID, 1)</td><td>SetStaticDoubleField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_2">JNIEnv_SetStaticDoubleField_2</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticDoubleField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_3">JNIEnv_SetStaticDoubleField_3</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticDoubleField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_4">JNIEnv_SetStaticDoubleField_4</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(clazz, NULL, 1)</td><td>SetStaticDoubleField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_5">JNIEnv_SetStaticDoubleField_5</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(clazz, fieldID, (jdouble)100)</td><td>SetStaticDoubleField(all correct, value == 100) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticDoubleField_6">JNIEnv_SetStaticDoubleField_6</a></td><td> void SetStaticDoubleField(jclass clazz, jfieldID fieldID, jdouble value) </td><td>(clazz, fieldID, -100)</td><td>SetStaticDoubleField(all correct, value == -100) set correct value to field</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticFloatField_1">JNIEnv_SetStaticFloatField_1</a></td><td> void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) </td><td>(NULL, fieldID, 1)</td><td>SetStaticFloatField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticFloatField_2">JNIEnv_SetStaticFloatField_2</a></td><td> void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticFloatField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticFloatField_3">JNIEnv_SetStaticFloatField_3</a></td><td> void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticFloatField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticFloatField_4">JNIEnv_SetStaticFloatField_4</a></td><td> void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) </td><td>(clazz, NULL, 1)</td><td>SetStaticFloatField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticFloatField_5">JNIEnv_SetStaticFloatField_5</a></td><td> void SetStaticFloatField(jclass clazz, jfieldID fieldID, jfloat value) </td><td>(clazz, fieldID, 1)</td><td>SetStaticFloatField(all right, value == 1) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticIntField_1">JNIEnv_SetStaticIntField_1</a></td><td> void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) </td><td>(NULL, fieldID, 1)</td><td>SetStaticIntField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticIntField_2">JNIEnv_SetStaticIntField_2</a></td><td> void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticIntField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticIntField_3">JNIEnv_SetStaticIntField_3</a></td><td> void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticIntField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticIntField_4">JNIEnv_SetStaticIntField_4</a></td><td> void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) </td><td>(clazz, NULL, 1)</td><td>SetStaticIntField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticIntField_5">JNIEnv_SetStaticIntField_5</a></td><td> void SetStaticIntField(jclass clazz, jfieldID fieldID, jint value) </td><td>(clazz, fieldID, 1)</td><td>SetStaticIntField(all right, value == 1) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticLongField_1">JNIEnv_SetStaticLongField_1</a></td><td> void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) </td><td>(NULL, fieldID, 1)</td><td>SetStaticLongField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticLongField_2">JNIEnv_SetStaticLongField_2</a></td><td> void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticLongField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticLongField_3">JNIEnv_SetStaticLongField_3</a></td><td> void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticLongField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticLongField_4">JNIEnv_SetStaticLongField_4</a></td><td> void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) </td><td>(clazz, NULL, 1)</td><td>SetStaticLongField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticLongField_5">JNIEnv_SetStaticLongField_5</a></td><td> void SetStaticLongField(jclass clazz, jfieldID fieldID, jlong value) </td><td>(clazz, fieldID, 1)</td><td>SetStaticLongField(all right, value == 1) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticObjectField_1">JNIEnv_SetStaticObjectField_1</a></td><td> void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) </td><td>(NULL, fieldID, str)</td><td>SetStaticObjectField(clazz == NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticObjectField_2">JNIEnv_SetStaticObjectField_2</a></td><td> void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) </td><td>(clazz, (jfieldID)-100, str)</td><td>SetStaticObjectField(fieldID incorrect negative) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticObjectField_3">JNIEnv_SetStaticObjectField_3</a></td><td> void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) </td><td>(clazz, (jfieldID)100, str)</td><td>SetStaticObjectField(fieldID incorrect positive) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticObjectField_4">JNIEnv_SetStaticObjectField_4</a></td><td> void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) </td><td>(clazz, NULL, str)</td><td>SetStaticObjectField(fieldID == NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticObjectField_5">JNIEnv_SetStaticObjectField_5</a></td><td> void SetStaticObjectField(jclass clazz, jfieldID fieldID, jobject value) </td><td>(clazz, fieldID, str)</td><td>SetStaticObjectField(all right) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticShortField_1">JNIEnv_SetStaticShortField_1</a></td><td> void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) </td><td>(NULL, fieldID, 1)</td><td>SetStaticShortField(clazz == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticShortField_2">JNIEnv_SetStaticShortField_2</a></td><td> void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) </td><td>(clazz, (jfieldID)-100, 1)</td><td>SetStaticShortField(fieldID == (jfieldID)-100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticShortField_3">JNIEnv_SetStaticShortField_3</a></td><td> void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) </td><td>(clazz, (jfieldID)100, 1)</td><td>SetStaticShortField(fieldID == (jfieldID)100) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticShortField_4">JNIEnv_SetStaticShortField_4</a></td><td> void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) </td><td>(clazz, NULL, 1)</td><td>SetStaticShortField(fieldID == NULL) do not crush</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetStaticShortField_5">JNIEnv_SetStaticShortField_5</a></td><td> void SetStaticShortField(jclass clazz, jfieldID fieldID, jshort value) </td><td>(clazz, fieldID, 1)</td><td>SetStaticShortField(all right, value == 1) return correct value</td></tr>
|
||||
<!--Total files: 112-->
|
||||
<tr><td><a name="JNIEnv_GetArrayLength_1">JNIEnv_GetArrayLength_1</a></td><td> jsize GetArrayLength(jarray array) </td><td>(arr)</td><td>GetArrayLength(arr) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetArrayLength_2">JNIEnv_GetArrayLength_2</a></td><td> jsize GetArrayLength(jarray array) </td><td>(NULL)</td><td>GetArrayLength(NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetArrayLength_3">JNIEnv_GetArrayLength_3</a></td><td> jsize GetArrayLength(jarray array) </td><td>(arr)</td><td>GetArrayLength(empty) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanArrayElements_1">JNIEnv_GetBooleanArrayElements_1</a></td><td> jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetBooleanArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanArrayElements_2">JNIEnv_GetBooleanArrayElements_2</a></td><td> jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetBooleanArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanArrayElements_3">JNIEnv_GetBooleanArrayElements_3</a></td><td> jboolean * GetBooleanArrayElements(jbooleanArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetBooleanArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetBooleanArrayRegion_1">JNIEnv_GetBooleanArrayRegion_1</a></td><td> void GetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, jboolean *buf) </td><td>(arr, start, leng, val)</td><td>GetBooleanArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteArrayElements_1">JNIEnv_GetByteArrayElements_1</a></td><td> jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetByteArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteArrayElements_2">JNIEnv_GetByteArrayElements_2</a></td><td> jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetByteArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteArrayElements_3">JNIEnv_GetByteArrayElements_3</a></td><td> jbyte * GetByteArrayElements(jbyteArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetByteArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetByteArrayRegion_1">JNIEnv_GetByteArrayRegion_1</a></td><td> void GetByteArrayRegion(jbyteArray array, jsize start, jsize len, jbyte *buf) </td><td>(arr, start, leng, val)</td><td>GetByteArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharArrayElements_1">JNIEnv_GetCharArrayElements_1</a></td><td> jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetCharArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharArrayElements_2">JNIEnv_GetCharArrayElements_2</a></td><td> jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetCharArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharArrayElements_3">JNIEnv_GetCharArrayElements_3</a></td><td> jchar * GetCharArrayElements(jcharArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetCharArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetCharArrayRegion_1">JNIEnv_GetCharArrayRegion_1</a></td><td> void GetCharArrayRegion(jcharArray array, jsize start, jsize len, jchar *buf) </td><td>(arr, start, leng, val)</td><td>GetCharArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleArrayElements_1">JNIEnv_GetDoubleArrayElements_1</a></td><td> jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetDoubleArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleArrayElements_2">JNIEnv_GetDoubleArrayElements_2</a></td><td> jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetDoubleArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleArrayElements_3">JNIEnv_GetDoubleArrayElements_3</a></td><td> jdouble * GetDoubleArrayElements(jdoubleArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetDoubleArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetDoubleArrayRegion_1">JNIEnv_GetDoubleArrayRegion_1</a></td><td> void GetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, jdouble *buf) </td><td>(arr, start, leng, val)</td><td>GetDoubleArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatArrayElements_1">JNIEnv_GetFloatArrayElements_1</a></td><td> jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetFloatArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatArrayElements_2">JNIEnv_GetFloatArrayElements_2</a></td><td> jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetFloatArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatArrayElements_3">JNIEnv_GetFloatArrayElements_3</a></td><td> jfloat * GetFloatArrayElements(jfloatArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetFloatArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetFloatArrayRegion_1">JNIEnv_GetFloatArrayRegion_1</a></td><td> void GetFloatArrayRegion(jfloatArray array, jsize start, jsize len, jfloat *buf) </td><td>(arr, start, leng, val)</td><td>GetFloatArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayElements_1">JNIEnv_GetIntArrayElements_1</a></td><td> jint * GetIntArrayElements(jintArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetIntArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayElements_2">JNIEnv_GetIntArrayElements_2</a></td><td> jint * GetIntArrayElements(jintArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetIntArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayElements_3">JNIEnv_GetIntArrayElements_3</a></td><td> jint * GetIntArrayElements(jintArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetIntArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayRegion_1">JNIEnv_GetIntArrayRegion_1</a></td><td> void GetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, val)</td><td>GetIntArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayRegion_2">JNIEnv_GetIntArrayRegion_2</a></td><td> void GetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, NULL)</td><td>GetIntArrayRegion(with buf as NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayRegion_3">JNIEnv_GetIntArrayRegion_3</a></td><td> void GetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(NULL, start, leng, val)</td><td>GetIntArrayRegion(arr = NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetIntArrayRegion_4">JNIEnv_GetIntArrayRegion_4</a></td><td> void GetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, val)</td><td>GetIntArrayRegion(where start is -1) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongArrayElements_1">JNIEnv_GetLongArrayElements_1</a></td><td> jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetLongArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongArrayElements_2">JNIEnv_GetLongArrayElements_2</a></td><td> jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetLongArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongArrayElements_3">JNIEnv_GetLongArrayElements_3</a></td><td> jlong * GetLongArrayElements(jlongArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetLongArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetLongArrayRegion_1">JNIEnv_GetLongArrayRegion_1</a></td><td> void GetLongArrayRegion(jlongArray array, jsize start, jsize len, jlong *buf) </td><td>(arr, start, leng, val)</td><td>GetLongArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectArrayElement_1">JNIEnv_GetObjectArrayElement_1</a></td><td> jobject GetObjectArrayElement(jobjectArray array, jsize index) </td><td>(arr, (jsize) 0)</td><td>GetObjectArrayElement(all correct index >= 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectArrayElement_2">JNIEnv_GetObjectArrayElement_2</a></td><td> jobject GetObjectArrayElement(jobjectArray array, jsize index) </td><td>(arr, (jsize) 0)</td><td>NewObjectArray(object as NULL) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectArrayElement_3">JNIEnv_GetObjectArrayElement_3</a></td><td> jobject GetObjectArrayElement(jobjectArray array, jsize index) </td><td>(NULL, (jsize) 0)</td><td>NewObjectArray(array as NULL) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectArrayElement_4">JNIEnv_GetObjectArrayElement_4</a></td><td> jobject GetObjectArrayElement(jobjectArray array, jsize index) </td><td>(arr, (jsize) -1)</td><td>GetObjectArrayElement(index < 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectArrayElement_5">JNIEnv_GetObjectArrayElement_5</a></td><td> jobject GetObjectArrayElement(jobjectArray array, jsize index) </td><td>(arr, (jsize) 6)</td><td>GetObjectArrayElement(index > length ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortArrayElements_1">JNIEnv_GetShortArrayElements_1</a></td><td> jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) </td><td>(NULL, &isCopy)</td><td>GetShortArrayElements(NULL, NOT_NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortArrayElements_2">JNIEnv_GetShortArrayElements_2</a></td><td> jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) </td><td>(arr, NULL)</td><td>GetShortArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortArrayElements_3">JNIEnv_GetShortArrayElements_3</a></td><td> jshort * GetShortArrayElements(jshortArray array, jboolean *isCopy) </td><td>(arr, &isCopy)</td><td>GetShortArrayElements(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetShortArrayRegion_1">JNIEnv_GetShortArrayRegion_1</a></td><td> void GetShortArrayRegion(jshortArray array, jsize start, jsize len, jshort *buf) </td><td>(arr, start, leng, val)</td><td>GetShortArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewBooleanArray_1">JNIEnv_NewBooleanArray_1</a></td><td> jbooleanArray NewBooleanArray(jsize len) </td><td>(5)</td><td>NewBooleanArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewBooleanArray_2">JNIEnv_NewBooleanArray_2</a></td><td> jbooleanArray NewBooleanArray(jsize len) </td><td>(-5)</td><td>NewBooleanArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewBooleanArray_3">JNIEnv_NewBooleanArray_3</a></td><td> jbooleanArray NewBooleanArray(jsize len) </td><td>(0)</td><td>NewBooleanArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewByteArray_1">JNIEnv_NewByteArray_1</a></td><td> jbyteArray NewByteArray(jsize len) </td><td>(5)</td><td>NewByteArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewByteArray_2">JNIEnv_NewByteArray_2</a></td><td> jbyteArray NewByteArray(jsize len) </td><td>(-5)</td><td>NewByteArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewByteArray_3">JNIEnv_NewByteArray_3</a></td><td> jbyteArray NewByteArray(jsize len) </td><td>(0)</td><td>NewByteArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewCharArray_1">JNIEnv_NewCharArray_1</a></td><td> jcharArray NewCharArray(jsize len) </td><td>(5)</td><td>NewCharArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewCharArray_2">JNIEnv_NewCharArray_2</a></td><td> jcharArray NewCharArray(jsize len) </td><td>(-5)</td><td>NewCharArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewCharArray_3">JNIEnv_NewCharArray_3</a></td><td> jcharArray NewCharArray(jsize len) </td><td>(0)</td><td>NewCharArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewDoubleArray_1">JNIEnv_NewDoubleArray_1</a></td><td> jdoubleArray NewDoubleArray(jsize len) </td><td>(5)</td><td>NewDoubleArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewDoubleArray_2">JNIEnv_NewDoubleArray_2</a></td><td> jdoubleArray NewDoubleArray(jsize len) </td><td>(-5)</td><td>NewDoubleArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewDoubleArray_3">JNIEnv_NewDoubleArray_3</a></td><td> jdoubleArray NewDoubleArray(jsize len) </td><td>(0)</td><td>NewDoubleArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewFloatArray_1">JNIEnv_NewFloatArray_1</a></td><td> jfloatArray NewFloatArray(jsize len) </td><td>(5)</td><td>NewFloatArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewFloatArray_2">JNIEnv_NewFloatArray_2</a></td><td> jfloatArray NewFloatArray(jsize len) </td><td>(-5)</td><td>NewFloatArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewFloatArray_3">JNIEnv_NewFloatArray_3</a></td><td> jfloatArray NewFloatArray(jsize len) </td><td>(0)</td><td>NewFloatArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewIntArray_1">JNIEnv_NewIntArray_1</a></td><td> jintArray NewIntArray(jsize len) </td><td>(5)</td><td>NewIntArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewIntArray_2">JNIEnv_NewIntArray_2</a></td><td> jintArray NewIntArray(jsize len) </td><td>(-5)</td><td>NewIntArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewIntArray_3">JNIEnv_NewIntArray_3</a></td><td> jintArray NewIntArray(jsize len) </td><td>(0)</td><td>NewIntArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewLongArray_1">JNIEnv_NewLongArray_1</a></td><td> jlongArray NewLongArray(jsize len) </td><td>(5)</td><td>NewLongArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewLongArray_2">JNIEnv_NewLongArray_2</a></td><td> jlongArray NewLongArray(jsize len) </td><td>(-5)</td><td>NewLongArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewLongArray_3">JNIEnv_NewLongArray_3</a></td><td> jlongArray NewLongArray(jsize len) </td><td>(0)</td><td>NewLongArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_1">JNIEnv_NewObjectArray_1</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(5, clazz, NULL)</td><td>NewObjectArray(obj ia NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_2">JNIEnv_NewObjectArray_2</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(-5, clazz, NULL)</td><td>NewObjectArray(-5, clazz, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_3">JNIEnv_NewObjectArray_3</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(0, clazz, obj)</td><td>NewObjectArray(all correct with length = 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_4">JNIEnv_NewObjectArray_4</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(4, clazz, obj)</td><td>NewObjectArray(all correct with length > 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_5">JNIEnv_NewObjectArray_5</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(5, clazz, obj_incor)</td><td>NewObjectArray(obj is incorrect) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectArray_6">JNIEnv_NewObjectArray_6</a></td><td> jobjectArray NewObjectArray(jsize len, jclass clazz, jobject init) </td><td>(5, NULL, obj)</td><td>NewObjectArray(obj is incorrect) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewShortArray_1">JNIEnv_NewShortArray_1</a></td><td> jshortArray NewShortArray(jsize len) </td><td>(5)</td><td>NewShortArray(5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewShortArray_2">JNIEnv_NewShortArray_2</a></td><td> jshortArray NewShortArray(jsize len) </td><td>(-5)</td><td>NewShortArray(-5) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewShortArray_3">JNIEnv_NewShortArray_3</a></td><td> jshortArray NewShortArray(jsize len) </td><td>(0)</td><td>NewShortArray(0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseBooleanArrayElements_1">JNIEnv_ReleaseBooleanArrayElements_1</a></td><td> void ReleaseBooleanArrayElements(jbooleanArray array, jboolean *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseBooleanArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseBooleanArrayElements_2">JNIEnv_ReleaseBooleanArrayElements_2</a></td><td> void ReleaseBooleanArrayElements(jbooleanArray array, jboolean *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseBooleanArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseBooleanArrayElements_3">JNIEnv_ReleaseBooleanArrayElements_3</a></td><td> void ReleaseBooleanArrayElements(jbooleanArray array, jboolean *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseBooleanArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseByteArrayElements_1">JNIEnv_ReleaseByteArrayElements_1</a></td><td> void ReleaseByteArrayElements(jbyteArray array, jbyte *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseByteArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseByteArrayElements_2">JNIEnv_ReleaseByteArrayElements_2</a></td><td> void ReleaseByteArrayElements(jbyteArray array, jbyte *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseByteArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseByteArrayElements_3">JNIEnv_ReleaseByteArrayElements_3</a></td><td> void ReleaseByteArrayElements(jbyteArray array, jbyte *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseByteArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseCharArrayElements_1">JNIEnv_ReleaseCharArrayElements_1</a></td><td> void ReleaseCharArrayElements(jcharArray array, jchar *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseCharArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseCharArrayElements_2">JNIEnv_ReleaseCharArrayElements_2</a></td><td> void ReleaseCharArrayElements(jcharArray array, jchar *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseCharArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseCharArrayElements_3">JNIEnv_ReleaseCharArrayElements_3</a></td><td> void ReleaseCharArrayElements(jcharArray array, jchar *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseCharArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseDoubleArrayElements_1">JNIEnv_ReleaseDoubleArrayElements_1</a></td><td> void ReleaseDoubleArrayElements(jdoubleArray array, jdouble *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseDoubleArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseDoubleArrayElements_2">JNIEnv_ReleaseDoubleArrayElements_2</a></td><td> void ReleaseDoubleArrayElements(jdoubleArray array, jdouble *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseDoubleArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseDoubleArrayElements_3">JNIEnv_ReleaseDoubleArrayElements_3</a></td><td> void ReleaseDoubleArrayElements(jdoubleArray array, jdouble *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseDoubleArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseFloatArrayElements_1">JNIEnv_ReleaseFloatArrayElements_1</a></td><td> void ReleaseFloatArrayElements(jfloatArray array, jfloat *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseFloatArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseFloatArrayElements_2">JNIEnv_ReleaseFloatArrayElements_2</a></td><td> void ReleaseFloatArrayElements(jfloatArray array, jfloat *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseFloatArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseFloatArrayElements_3">JNIEnv_ReleaseFloatArrayElements_3</a></td><td> void ReleaseFloatArrayElements(jfloatArray array, jfloat *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseFloatArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseIntArrayElements_1">JNIEnv_ReleaseIntArrayElements_1</a></td><td> void ReleaseIntArrayElements(jintArray array, jint *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseIntArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseIntArrayElements_2">JNIEnv_ReleaseIntArrayElements_2</a></td><td> void ReleaseIntArrayElements(jintArray array, jint *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseIntArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseIntArrayElements_3">JNIEnv_ReleaseIntArrayElements_3</a></td><td> void ReleaseIntArrayElements(jintArray array, jint *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseIntArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseLongArrayElements_1">JNIEnv_ReleaseLongArrayElements_1</a></td><td> void ReleaseLongArrayElements(jlongArray array, jlong *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseLongArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseLongArrayElements_2">JNIEnv_ReleaseLongArrayElements_2</a></td><td> void ReleaseLongArrayElements(jlongArray array, jlong *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseLongArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseLongArrayElements_3">JNIEnv_ReleaseLongArrayElements_3</a></td><td> void ReleaseLongArrayElements(jlongArray array, jlong *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseLongArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseShortArrayElements_1">JNIEnv_ReleaseShortArrayElements_1</a></td><td> void ReleaseShortArrayElements(jshortArray array, jshort *elems, jint mode) </td><td>(arr, val, 0)</td><td>ReleaseShortArrayElements(arr, val, 0) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseShortArrayElements_2">JNIEnv_ReleaseShortArrayElements_2</a></td><td> void ReleaseShortArrayElements(jshortArray array, jshort *elems, jint mode) </td><td>(arr, val, JNI_ABORT)</td><td>ReleaseShortArrayElements(arr, val, JNI_ABORT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseShortArrayElements_3">JNIEnv_ReleaseShortArrayElements_3</a></td><td> void ReleaseShortArrayElements(jshortArray array, jshort *elems, jint mode) </td><td>(arr, val, JNI_COMMIT)</td><td>ReleaseShortArrayElements(arr, val, JNI_COMMIT) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetBooleanArrayRegion_1">JNIEnv_SetBooleanArrayRegion_1</a></td><td> void SetBooleanArrayRegion(jbooleanArray array, jsize start, jsize len, jboolean *buf) </td><td>(arr, start, leng, buf)</td><td>SetBooleanArrayRegion(all correct) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetByteArrayRegion_1">JNIEnv_SetByteArrayRegion_1</a></td><td> void SetByteArrayRegion(jbyteArray array, jsize start, jsize len, jbyte *buf) </td><td>(arr, start, leng, buf)</td><td>SetByteArrayRegion(all correct) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetCharArrayRegion_1">JNIEnv_SetCharArrayRegion_1</a></td><td> void SetCharArrayRegion(jcharArray array, jsize start, jsize len, jchar *buf) </td><td>(arr, start, leng, buf)</td><td>SetCharArrayRegion(arr, NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetDoubleArrayRegion_1">JNIEnv_SetDoubleArrayRegion_1</a></td><td> void SetDoubleArrayRegion(jdoubleArray array, jsize start, jsize len, jdouble *buf) </td><td>(arr, start, leng, buf)</td><td>SetDoubleArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetFloatArrayRegion_1">JNIEnv_SetFloatArrayRegion_1</a></td><td> void SetFloatArrayRegion(jfloatArray array, jsize start, jsize len, jfloat *buf) </td><td>(arr, start, leng, buf)</td><td>SetFloatArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntArrayRegion_1">JNIEnv_SetIntArrayRegion_1</a></td><td> void SetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, buf)</td><td>SetIntArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntArrayRegion_2">JNIEnv_SetIntArrayRegion_2</a></td><td> void SetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, NULL)</td><td>SetIntArrayRegion(with buf as NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntArrayRegion_3">JNIEnv_SetIntArrayRegion_3</a></td><td> void SetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(NULL, start, leng, buf)</td><td>SetIntArrayRegion(arr = NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetIntArrayRegion_4">JNIEnv_SetIntArrayRegion_4</a></td><td> void SetIntArrayRegion(jintArray array, jsize start, jsize len, jint *buf) </td><td>(arr, start, leng, buf)</td><td>SetIntArrayRegion(where start is -1) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetLongArrayRegion_1">JNIEnv_SetLongArrayRegion_1</a></td><td> void SetLongArrayRegion(jlongArray array, jsize start, jsize len, jlong *buf) </td><td>(arr, start, leng, buf)</td><td>SetLongArrayRegion(all right) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectArrayElement_1">JNIEnv_SetObjectArrayElement_1</a></td><td> void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) </td><td>(arr, (jsize)0, str1)</td><td>SetObjectArrayElement(all correct, index = 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectArrayElement_2">JNIEnv_SetObjectArrayElement_2</a></td><td> void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) </td><td>(arr, (jsize)0, NULL)</td><td>SetObjectArrayElement(all correct, element = NULL) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectArrayElement_3">JNIEnv_SetObjectArrayElement_3</a></td><td> void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) </td><td>(arr, (jsize)-1, str1)</td><td>SetObjectArrayElement(index < 0 ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectArrayElement_4">JNIEnv_SetObjectArrayElement_4</a></td><td> void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) </td><td>(arr, (jsize)6, str1)</td><td>SetObjectArrayElement(index > length ) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetObjectArrayElement_5">JNIEnv_SetObjectArrayElement_5</a></td><td> void SetObjectArrayElement(jobjectArray array, jsize index, jobject val) </td><td>(arr, (jsize)6, obj_incor)</td><td>SetObjectArrayElement(incorrect object) returns correct value - empty array</td></tr>
|
||||
<tr><td><a name="JNIEnv_SetShortArrayRegion_1">JNIEnv_SetShortArrayRegion_1</a></td><td> void SetShortArrayRegion(jshortArray array, jsize start, jsize len, jshort *buf) </td><td>(arr, start, leng, buf)</td><td>SetShortArrayRegion(all right) returns correct value</td></tr>
|
||||
<!--Total files: 163-->
|
||||
<tr><td><a name="JNIEnv_CallBooleanMethod_1">JNIEnv_CallBooleanMethod_1</a></td><td> jboolean CallBooleanMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallBooleanMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallBooleanMethod_2">JNIEnv_CallBooleanMethod_2</a></td><td> jboolean CallBooleanMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallBooleanMethod_3">JNIEnv_CallBooleanMethod_3</a></td><td> jboolean CallBooleanMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallBooleanMethod_4">JNIEnv_CallBooleanMethod_4</a></td><td> jboolean CallBooleanMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_FALSE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallByteMethod_1">JNIEnv_CallByteMethod_1</a></td><td> jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallByteMethod_2">JNIEnv_CallByteMethod_2</a></td><td> jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallByteMethod_3">JNIEnv_CallByteMethod_3</a></td><td> jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallByteMethod_4">JNIEnv_CallByteMethod_4</a></td><td> jbyte CallByteMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, MAX_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallCharMethod_1">JNIEnv_CallCharMethod_1</a></td><td> jchar CallCharMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallCharMethod_2">JNIEnv_CallCharMethod_2</a></td><td> jchar CallCharMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallCharMethod_3">JNIEnv_CallCharMethod_3</a></td><td> jchar CallCharMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallCharMethod_4">JNIEnv_CallCharMethod_4</a></td><td> jchar CallCharMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, MIN_JBYTE, NULL, 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallDoubleMethod_1">JNIEnv_CallDoubleMethod_1</a></td><td> jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallDoubleMethod_2">JNIEnv_CallDoubleMethod_2</a></td><td> jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallDoubleMethod_3">JNIEnv_CallDoubleMethod_3</a></td><td> jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallDoubleMethod_4">JNIEnv_CallDoubleMethod_4</a></td><td> jdouble CallDoubleMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MIN_JDOUBLE, NULL, NULL)</td><td>CallDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallFloatMethod_1">JNIEnv_CallFloatMethod_1</a></td><td> jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallFloatMethod_2">JNIEnv_CallFloatMethod_2</a></td><td> jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallFloatMethod_3">JNIEnv_CallFloatMethod_3</a></td><td> jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MIN_JFLOAT, 100, NULL, NULL)</td><td>CallFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallFloatMethod_4">JNIEnv_CallFloatMethod_4</a></td><td> jfloat CallFloatMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MAX_JFLOAT, 100, NULL, NULL)</td><td>CallFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_1">JNIEnv_CallIntMethod_1</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, NULL)</td><td>CallIntMethod with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_10">JNIEnv_CallIntMethod_10</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public final not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_11">JNIEnv_CallIntMethod_11</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_12">JNIEnv_CallIntMethod_12</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_13">JNIEnv_CallIntMethod_13</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, 10)</td><td>CallIntMethod for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_14">JNIEnv_CallIntMethod_14</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_15">JNIEnv_CallIntMethod_15</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_16">JNIEnv_CallIntMethod_16</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, MAX_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_17">JNIEnv_CallIntMethod_17</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, MIN_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_18">JNIEnv_CallIntMethod_18</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_19">JNIEnv_CallIntMethod_19</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_2">JNIEnv_CallIntMethod_2</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_3">JNIEnv_CallIntMethod_3</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for private not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_4">JNIEnv_CallIntMethod_4</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for protected not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_5">JNIEnv_CallIntMethod_5</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for no-modifiers not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_6">JNIEnv_CallIntMethod_6</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for public inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_7">JNIEnv_CallIntMethod_7</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for private inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_8">JNIEnv_CallIntMethod_8</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for protected inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallIntMethod_9">JNIEnv_CallIntMethod_9</a></td><td> jint CallIntMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallIntMethodA for no-modifiers inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallLongMethod_1">JNIEnv_CallLongMethod_1</a></td><td> jlong CallLongMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallLongMethod_2">JNIEnv_CallLongMethod_2</a></td><td> jlong CallLongMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallLongMethod_3">JNIEnv_CallLongMethod_3</a></td><td> jlong CallLongMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, MAX_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallLongMethod_4">JNIEnv_CallLongMethod_4</a></td><td> jlong CallLongMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, MIN_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualBooleanMethod_1">JNIEnv_CallNonvirtualBooleanMethod_1</a></td><td> jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualBooleanMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualBooleanMethod_2">JNIEnv_CallNonvirtualBooleanMethod_2</a></td><td> jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualBooleanMethod_3">JNIEnv_CallNonvirtualBooleanMethod_3</a></td><td> jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualBooleanMethod_4">JNIEnv_CallNonvirtualBooleanMethod_4</a></td><td> jboolean CallNonvirtualBooleanMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_FALSE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualByteMethod_1">JNIEnv_CallNonvirtualByteMethod_1</a></td><td> jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualByteMethod_2">JNIEnv_CallNonvirtualByteMethod_2</a></td><td> jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualByteMethod_3">JNIEnv_CallNonvirtualByteMethod_3</a></td><td> jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualByteMethod_4">JNIEnv_CallNonvirtualByteMethod_4</a></td><td> jbyte CallNonvirtualByteMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, MAX_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualCharMethod_1">JNIEnv_CallNonvirtualCharMethod_1</a></td><td> jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualCharMethod_2">JNIEnv_CallNonvirtualCharMethod_2</a></td><td> jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualCharMethod_3">JNIEnv_CallNonvirtualCharMethod_3</a></td><td> jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualCharMethod_4">JNIEnv_CallNonvirtualCharMethod_4</a></td><td> jchar CallNonvirtualCharMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, MIN_JBYTE, NULL, 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualDoubleMethod_1">JNIEnv_CallNonvirtualDoubleMethod_1</a></td><td> jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualDoubleMethod_2">JNIEnv_CallNonvirtualDoubleMethod_2</a></td><td> jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualDoubleMethod_3">JNIEnv_CallNonvirtualDoubleMethod_3</a></td><td> jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualDoubleMethod_4">JNIEnv_CallNonvirtualDoubleMethod_4</a></td><td> jdouble CallNonvirtualDoubleMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MIN_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualFloatMethod_1">JNIEnv_CallNonvirtualFloatMethod_1</a></td><td> jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualFloatMethod_2">JNIEnv_CallNonvirtualFloatMethod_2</a></td><td> jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualFloatMethod_3">JNIEnv_CallNonvirtualFloatMethod_3</a></td><td> jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MIN_JFLOAT, 100, NULL, NULL)</td><td>CallNonvirtualFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualFloatMethod_4">JNIEnv_CallNonvirtualFloatMethod_4</a></td><td> jfloat CallNonvirtualFloatMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MAX_JFLOAT, 100, NULL, NULL)</td><td>CallNonvirtualFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_1">JNIEnv_CallNonvirtualIntMethod_1</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, 10)</td><td>CallNonvirtualIntMethod for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_10">JNIEnv_CallNonvirtualIntMethod_10</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for no-modifiers not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_11">JNIEnv_CallNonvirtualIntMethod_11</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_12">JNIEnv_CallNonvirtualIntMethod_12</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for private inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_13">JNIEnv_CallNonvirtualIntMethod_13</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for protected inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_14">JNIEnv_CallNonvirtualIntMethod_14</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for no-modifiers inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_15">JNIEnv_CallNonvirtualIntMethod_15</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public final not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_16">JNIEnv_CallNonvirtualIntMethod_16</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_17">JNIEnv_CallNonvirtualIntMethod_17</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_18">JNIEnv_CallNonvirtualIntMethod_18</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_19">JNIEnv_CallNonvirtualIntMethod_19</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_2">JNIEnv_CallNonvirtualIntMethod_2</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_20">JNIEnv_CallNonvirtualIntMethod_20</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_21">JNIEnv_CallNonvirtualIntMethod_21</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_22">JNIEnv_CallNonvirtualIntMethod_22</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public final not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_23">JNIEnv_CallNonvirtualIntMethod_23</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for no-modifiers inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_24">JNIEnv_CallNonvirtualIntMethod_24</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for protected inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_25">JNIEnv_CallNonvirtualIntMethod_25</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for private inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_26">JNIEnv_CallNonvirtualIntMethod_26</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_27">JNIEnv_CallNonvirtualIntMethod_27</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for no-modifiers not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_28">JNIEnv_CallNonvirtualIntMethod_28</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for protected not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_29">JNIEnv_CallNonvirtualIntMethod_29</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for private not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_30">JNIEnv_CallNonvirtualIntMethod_30</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA (with class = superclass) for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_31">JNIEnv_CallNonvirtualIntMethod_31</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, MAX_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_32">JNIEnv_CallNonvirtualIntMethod_32</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, MIN_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_33">JNIEnv_CallNonvirtualIntMethod_33</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_34">JNIEnv_CallNonvirtualIntMethod_34</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_4">JNIEnv_CallNonvirtualIntMethod_4</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, NULL)</td><td>CallNonvirtualIntMethod with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_5">JNIEnv_CallNonvirtualIntMethod_5</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualIntMethodA with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_7">JNIEnv_CallNonvirtualIntMethod_7</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_8">JNIEnv_CallNonvirtualIntMethod_8</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for private not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualIntMethod_9">JNIEnv_CallNonvirtualIntMethod_9</a></td><td> jint CallNonvirtualIntMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, clazz, MethodID, args)</td><td>CallNonvirtualIntMethodA for protected not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualLongMethod_1">JNIEnv_CallNonvirtualLongMethod_1</a></td><td> jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualLongMethod_2">JNIEnv_CallNonvirtualLongMethod_2</a></td><td> jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualLongMethod_3">JNIEnv_CallNonvirtualLongMethod_3</a></td><td> jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, MAX_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualLongMethod_4">JNIEnv_CallNonvirtualLongMethod_4</a></td><td> jlong CallNonvirtualLongMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, MIN_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_1">JNIEnv_CallNonvirtualObjectMethod_1</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_2">JNIEnv_CallNonvirtualObjectMethod_2</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_3">JNIEnv_CallNonvirtualObjectMethod_3</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallNonvirtualObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_4">JNIEnv_CallNonvirtualObjectMethod_4</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_5">JNIEnv_CallNonvirtualObjectMethod_5</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_6">JNIEnv_CallNonvirtualObjectMethod_6</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualObjectMethod_7">JNIEnv_CallNonvirtualObjectMethod_7</a></td><td> jobject CallNonvirtualObjectMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallNonvirtualObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualShortMethod_1">JNIEnv_CallNonvirtualShortMethod_1</a></td><td> jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualShortMethod_2">JNIEnv_CallNonvirtualShortMethod_2</a></td><td> jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualShortMethod_3">JNIEnv_CallNonvirtualShortMethod_3</a></td><td> jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', MAX_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualShortMethod_4">JNIEnv_CallNonvirtualShortMethod_4</a></td><td> jshort CallNonvirtualShortMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallNonvirtualShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualVoidMethod_1">JNIEnv_CallNonvirtualVoidMethod_1</a></td><td> void CallNonvirtualVoidMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, args)</td><td>CallNonvirtualVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallNonvirtualVoidMethod_2">JNIEnv_CallNonvirtualVoidMethod_2</a></td><td> void CallNonvirtualVoidMethod(jobject obj, jclass clazz, jmethodID methodID, ...) </td><td>(obj, env->GetSuperclass(clazz), MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallNonvirtualVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_1">JNIEnv_CallObjectMethod_1</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_2">JNIEnv_CallObjectMethod_2</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_3">JNIEnv_CallObjectMethod_3</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_4">JNIEnv_CallObjectMethod_4</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_5">JNIEnv_CallObjectMethod_5</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_6">JNIEnv_CallObjectMethod_6</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallObjectMethod_7">JNIEnv_CallObjectMethod_7</a></td><td> jobject CallObjectMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallShortMethod_1">JNIEnv_CallShortMethod_1</a></td><td> jshort CallShortMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallShortMethod_2">JNIEnv_CallShortMethod_2</a></td><td> jshort CallShortMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallShortMethod_3">JNIEnv_CallShortMethod_3</a></td><td> jshort CallShortMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', MAX_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallShortMethod_4">JNIEnv_CallShortMethod_4</a></td><td> jshort CallShortMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallVoidMethod_1">JNIEnv_CallVoidMethod_1</a></td><td> void CallVoidMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, args)</td><td>CallVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallVoidMethod_2">JNIEnv_CallVoidMethod_2</a></td><td> void CallVoidMethod(jobject obj, jmethodID methodID, ...) </td><td>(obj, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_1">JNIEnv_GetMethodID_1</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(NULL, "Print_string", "(Ljava/lang/String;)V")</td><td>GetMethodID with class == NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_10">JNIEnv_GetMethodID_10</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method5", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_11">JNIEnv_GetMethodID_11</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field", "()</td><td>GetMethodID for public method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_12">JNIEnv_GetMethodID_12</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_public_final", "(I)</td><td>GetMethodID for public final method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_13">JNIEnv_GetMethodID_13</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_public_sinc", "(I)</td><td>GetMethodID for public synchronized method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_14">JNIEnv_GetMethodID_14</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "mprint", "(I)</td><td>GetMethodID for public native method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_15">JNIEnv_GetMethodID_15</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test_method", "()</td><td>GetMethodID for public method from children of interface return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_16">JNIEnv_GetMethodID_16</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Test_method", "()V")</td><td>GetMethodID for public method from interface return correct value (0)</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_17">JNIEnv_GetMethodID_17</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test2_override", "(I)</td><td>GetMethodID for public overrided method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_18">JNIEnv_GetMethodID_18</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Test8_method1", "()V")</td><td>GetMethodID for public method from abstract class inherited from interface return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_19">JNIEnv_GetMethodID_19</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Abs_public_abstract_int", "(I)I")</td><td>GetMethodID for public abstract method from abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_2">JNIEnv_GetMethodID_2</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string", NULL)</td><td>GetMethodID with sig==NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_20">JNIEnv_GetMethodID_20</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Abs_protected_abstract_int", "(I)I")</td><td>GetMethodID for protected abstract method from abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_21">JNIEnv_GetMethodID_21</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Abs_nomod_abstract_int", "(I)I")</td><td>GetMethodID for no-modifier abstract method from abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_22">JNIEnv_GetMethodID_22</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Test9_abs_public_int", "(I)I")</td><td>GetMethodID for public abstract method from super-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_23">JNIEnv_GetMethodID_23</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Test9_abs_protected_int", "(I)I")</td><td>GetMethodID for protected abstract method from super-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_24">JNIEnv_GetMethodID_24</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "Test9_abs_nomod_int", "(I)I")</td><td>GetMethodID for no-modifiers abstract method from super-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_25">JNIEnv_GetMethodID_25</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "<init>", "(S)</td><td>GetMethodID for no-modifiers constructor in non-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_26">JNIEnv_GetMethodID_26</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "<init>", "(Z)</td><td>GetMethodID for protected constructor in non-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_27">JNIEnv_GetMethodID_27</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "<init>", "(I)</td><td>GetMethodID for public constructor in non-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_28">JNIEnv_GetMethodID_28</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "<init>", "(Ljava/lang/String;)V")</td><td>GetMethodID for public constructor in abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_29">JNIEnv_GetMethodID_29</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "<init>", "(I)V")</td><td>GetMethodID for private constructor in abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_3">JNIEnv_GetMethodID_3</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( NULL, "(Ljava/lang/String;)</td><td>GetMethodID for name = NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_30">JNIEnv_GetMethodID_30</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "<init>", "()V")</td><td>GetMethodID for protected constructor in abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_31">JNIEnv_GetMethodID_31</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>(clazz, "<init>", "(ILjava/lang/String;)V")</td><td>GetMethodID for no-modifiers constructor in abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_32">JNIEnv_GetMethodID_32</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "<init>", "()</td><td>GetMethodID for private constructor in non-abstract class return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_33">JNIEnv_GetMethodID_33</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_private", "(Ljava/lang/String;)</td><td>GetMethodID for private method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_34">JNIEnv_GetMethodID_34</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_protected", "(Ljava/lang/String;)</td><td>GetMethodID for protected method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_35">JNIEnv_GetMethodID_35</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_nomod", "(Ljava/lang/String;)</td><td>GetMethodID for no-modifiers method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_36">JNIEnv_GetMethodID_36</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_super_protected", "(Ljava/lang/String;)</td><td>GetMethodID for protected method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_37">JNIEnv_GetMethodID_37</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_super_nomod", "(Ljava/lang/String;)</td><td>GetMethodID for no-modifiers method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_38">JNIEnv_GetMethodID_38</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field_super_private", "()</td><td>GetMethodID for private method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_39">JNIEnv_GetMethodID_39</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field_super", "()</td><td>GetMethodID for public method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_4">JNIEnv_GetMethodID_4</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string", "")</td><td>GetMethodID with incorrect sig return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_5">JNIEnv_GetMethodID_5</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "name_not_exist", "(Ljava/lang/String;)</td><td>GetMethodID for not existing name return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_6">JNIEnv_GetMethodID_6</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method1", "()</td><td>GetMethodID for public not inherited method (sig = ()V) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_7">JNIEnv_GetMethodID_7</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method2", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)V) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_8">JNIEnv_GetMethodID_8</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method3", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetMethodID_9">JNIEnv_GetMethodID_9</a></td><td> jmethodID GetMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method4", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<!--Total files: 77-->
|
||||
<tr><td><a name="JNIEnv_CallStaticBooleanMethod_1">JNIEnv_CallStaticBooleanMethod_1</a></td><td> jboolean CallStaticBooleanMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticBooleanMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticBooleanMethod_2">JNIEnv_CallStaticBooleanMethod_2</a></td><td> jboolean CallStaticBooleanMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticBooleanMethod_3">JNIEnv_CallStaticBooleanMethod_3</a></td><td> jboolean CallStaticBooleanMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticBooleanMethod_4">JNIEnv_CallStaticBooleanMethod_4</a></td><td> jboolean CallStaticBooleanMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_FALSE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticBooleanMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticByteMethod_1">JNIEnv_CallStaticByteMethod_1</a></td><td> jbyte CallStaticByteMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticByteMethod_2">JNIEnv_CallStaticByteMethod_2</a></td><td> jbyte CallStaticByteMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticByteMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticByteMethod_3">JNIEnv_CallStaticByteMethod_3</a></td><td> jbyte CallStaticByteMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticByteMethod_4">JNIEnv_CallStaticByteMethod_4</a></td><td> jbyte CallStaticByteMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, MAX_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticByteMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)B) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticCharMethod_1">JNIEnv_CallStaticCharMethod_1</a></td><td> jchar CallStaticCharMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticCharMethod_2">JNIEnv_CallStaticCharMethod_2</a></td><td> jchar CallStaticCharMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticCharMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticCharMethod_3">JNIEnv_CallStaticCharMethod_3</a></td><td> jchar CallStaticCharMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, MIN_JBYTE, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticCharMethod_4">JNIEnv_CallStaticCharMethod_4</a></td><td> jchar CallStaticCharMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, MIN_JBYTE, NULL, 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticCharMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)C) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticDoubleMethod_1">JNIEnv_CallStaticDoubleMethod_1</a></td><td> jdouble CallStaticDoubleMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticDoubleMethod_2">JNIEnv_CallStaticDoubleMethod_2</a></td><td> jdouble CallStaticDoubleMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticDoubleMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticDoubleMethod_3">JNIEnv_CallStaticDoubleMethod_3</a></td><td> jdouble CallStaticDoubleMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticDoubleMethod_4">JNIEnv_CallStaticDoubleMethod_4</a></td><td> jdouble CallStaticDoubleMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, MIN_JDOUBLE, NULL, NULL)</td><td>CallStaticDoubleMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)D) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticFloatMethod_1">JNIEnv_CallStaticFloatMethod_1</a></td><td> jfloat CallStaticFloatMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticFloatMethod_2">JNIEnv_CallStaticFloatMethod_2</a></td><td> jfloat CallStaticFloatMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticFloatMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticFloatMethod_3">JNIEnv_CallStaticFloatMethod_3</a></td><td> jfloat CallStaticFloatMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MIN_JFLOAT, 100, NULL, NULL)</td><td>CallStaticFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticFloatMethod_4">JNIEnv_CallStaticFloatMethod_4</a></td><td> jfloat CallStaticFloatMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, MAX_JFLOAT, 100, NULL, NULL)</td><td>CallStaticFloatMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)F) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_1">JNIEnv_CallStaticIntMethod_1</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, NULL)</td><td>CallStaticIntMethod with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_10">JNIEnv_CallStaticIntMethod_10</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for no-modifiers not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_11">JNIEnv_CallStaticIntMethod_11</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_12">JNIEnv_CallStaticIntMethod_12</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for private inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_13">JNIEnv_CallStaticIntMethod_13</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for protected inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_14">JNIEnv_CallStaticIntMethod_14</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for no-modifiers inherited from superclass method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_15">JNIEnv_CallStaticIntMethod_15</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public final not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_16">JNIEnv_CallStaticIntMethod_16</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_17">JNIEnv_CallStaticIntMethod_17</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public synchronized not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_18">JNIEnv_CallStaticIntMethod_18</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_19">JNIEnv_CallStaticIntMethod_19</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_2">JNIEnv_CallStaticIntMethod_2</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA with sig = \"()I\" return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_20">JNIEnv_CallStaticIntMethod_20</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, MAX_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_21">JNIEnv_CallStaticIntMethod_21</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, MIN_JINT, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticIntMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_4">JNIEnv_CallStaticIntMethod_4</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, 10)</td><td>CallStaticIntMethod for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_5">JNIEnv_CallStaticIntMethod_5</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public not inherited method that thrown exception really thrown exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_7">JNIEnv_CallStaticIntMethod_7</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_8">JNIEnv_CallStaticIntMethod_8</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for private not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticIntMethod_9">JNIEnv_CallStaticIntMethod_9</a></td><td> jint CallStaticIntMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticIntMethodA for protected not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticLongMethod_1">JNIEnv_CallStaticLongMethod_1</a></td><td> jlong CallStaticLongMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticLongMethod_2">JNIEnv_CallStaticLongMethod_2</a></td><td> jlong CallStaticLongMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticLongMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticLongMethod_3">JNIEnv_CallStaticLongMethod_3</a></td><td> jlong CallStaticLongMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, MAX_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticLongMethod_4">JNIEnv_CallStaticLongMethod_4</a></td><td> jlong CallStaticLongMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, MIN_JLONG, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticLongMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)J) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_1">JNIEnv_CallStaticObjectMethod_1</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_2">JNIEnv_CallStaticObjectMethod_2</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_3">JNIEnv_CallStaticObjectMethod_3</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallStaticObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_4">JNIEnv_CallStaticObjectMethod_4</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_5">JNIEnv_CallStaticObjectMethod_5</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_6">JNIEnv_CallStaticObjectMethod_6</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallObjectMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticObjectMethod_7">JNIEnv_CallStaticObjectMethod_7</a></td><td> jobject CallStaticObjectMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, jpath, NULL)</td><td>CallObjectMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticShortMethod_1">JNIEnv_CallStaticShortMethod_1</a></td><td> jshort CallStaticShortMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticShortMethod_2">JNIEnv_CallStaticShortMethod_2</a></td><td> jshort CallStaticShortMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticShortMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticShortMethod_3">JNIEnv_CallStaticShortMethod_3</a></td><td> jshort CallStaticShortMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', MAX_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticShortMethod_4">JNIEnv_CallStaticShortMethod_4</a></td><td> jshort CallStaticShortMethod(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', MIN_JSHORT, 123, 0, 0, MAX_JDOUBLE, NULL, NULL)</td><td>CallStaticShortMethod for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)S) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticVoidMethod_1">JNIEnv_CallStaticVoidMethod_1</a></td><td> void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) </td><td>(clazz, MethodID, args)</td><td>CallStaticVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_CallStaticVoidMethod_2">JNIEnv_CallStaticVoidMethod_2</a></td><td> void CallStaticVoidMethod(jclass cls, jmethodID methodID, ...) </td><td>(clazz, MethodID, JNI_TRUE, 0, 'a', 1, 123, 0, 0, 100, NULL, NULL)</td><td>CallStaticVoidMethodA for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Z) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_1">JNIEnv_GetStaticMethodID_1</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>(NULL, "Print_string_static", "(Ljava/lang/String;)V")</td><td>GetStaticMethodID with class == NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_10">JNIEnv_GetStaticMethodID_10</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method5_static", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetStaticMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_11">JNIEnv_GetStaticMethodID_11</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test2_override_static", "(I)</td><td>GetStaticMethodID for public overrided method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_12">JNIEnv_GetStaticMethodID_12</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field_static", "()</td><td>GetStaticMethodID for public static method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_13">JNIEnv_GetStaticMethodID_13</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_public_final_static", "(I)</td><td>GetStaticMethodID for public static final method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_14">JNIEnv_GetStaticMethodID_14</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_public_sinc_static", "(I)</td><td>GetStaticMethodID for public static synchronized method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_15">JNIEnv_GetStaticMethodID_15</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "mprint_static", "(I)</td><td>GetStaticMethodID for public native method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_16">JNIEnv_GetStaticMethodID_16</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_nomod_static", "(Ljava/lang/String;)</td><td>GetStaticMethodID for nomod static method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_17">JNIEnv_GetStaticMethodID_17</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_protected_static", "(Ljava/lang/String;)</td><td>GetStaticMethodID for protected static method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_18">JNIEnv_GetStaticMethodID_18</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_private_static", "(Ljava/lang/String;)</td><td>GetStaticMethodID for private method from non-abstract class, not inherited return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_19">JNIEnv_GetStaticMethodID_19</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field_super_static", "()</td><td>GetStaticMethodID for public method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_2">JNIEnv_GetStaticMethodID_2</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_static", NULL)</td><td>GetStaticMethodID with sig==NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_20">JNIEnv_GetStaticMethodID_20</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_super_nomod_static", "(Ljava/lang/String;)</td><td>GetStaticMethodID for nomod static method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_21">JNIEnv_GetStaticMethodID_21</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_super_protected_static", "(Ljava/lang/String;)</td><td>GetStaticMethodID for protected static method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_22">JNIEnv_GetStaticMethodID_22</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Get_int_field_super_private_static", "()</td><td>GetStaticMethodID for private method from non-abstract class, inherited from superclass return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_3">JNIEnv_GetStaticMethodID_3</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( NULL, "(Ljava/lang/String;)</td><td>GetStaticMethodID for name = NULL return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_4">JNIEnv_GetStaticMethodID_4</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Print_string_static", "")</td><td>GetStaticMethodID with incorrect sig return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_5">JNIEnv_GetStaticMethodID_5</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "name_not_exist", "(Ljava/lang/String;)</td><td>GetStaticMethodID for not existing name return 0, its correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_6">JNIEnv_GetStaticMethodID_6</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method1_static", "()</td><td>GetStaticMethodID for public not inherited method (sig = ()V) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_7">JNIEnv_GetStaticMethodID_7</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method2_static", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetStaticMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)V) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_8">JNIEnv_GetStaticMethodID_8</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method3_static", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetStaticMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)I) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStaticMethodID_9">JNIEnv_GetStaticMethodID_9</a></td><td> jmethodID GetStaticMethodID(jclass clazz, const char *name, const char *sig) </td><td>( "Test1_method4_static", "(ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)</td><td>GetStaticMethodID for public not inherited method (sig = (ZBCSIJFDLjava/lang/String;[Ljava/lang/String;)Ljava/lang/String;) return correct value</td></tr>
|
||||
<!--Total files: 16-->
|
||||
<tr><td><a name="JNIEnv_FindClass_1">JNIEnv_FindClass_1</a></td><td> jclass FindClass(const char *name) </td><td>(NULL)</td><td>FindClass(NULL) return NULL - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_2">JNIEnv_FindClass_2</a></td><td> jclass FindClass(const char *name) </td><td>("Test1")</td><td>FindClass(name of existing class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_3">JNIEnv_FindClass_3</a></td><td> jclass FindClass(const char *name) </td><td>("")</td><td>FindClass(empty string) return NULL - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_4">JNIEnv_FindClass_4</a></td><td> jclass FindClass(const char *name) </td><td>("Testx")</td><td>FindClass(name of non existing class) return NULL - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_5">JNIEnv_FindClass_5</a></td><td> jclass FindClass(const char *name) </td><td>("Test4")</td><td>FindClass(name of existing abstarct class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_6">JNIEnv_FindClass_6</a></td><td> jclass FindClass(const char *name) </td><td>("Test3")</td><td>FindClass(name of existing abstarct class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_7">JNIEnv_FindClass_7</a></td><td> jclass FindClass(const char *name) </td><td>("Ljava/lang/String;")</td><td>FindClass(java.lang.String) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_FindClass_8">JNIEnv_FindClass_8</a></td><td> jclass FindClass(const char *name) </td><td>("[Ljava/lang/String;")</td><td>FindClass([java.lang.String) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetSuperclass_1">JNIEnv_GetSuperclass_1</a></td><td> jclass GetSuperclass(jclass sub) </td><td>(NULL)</td><td>GetSuperclass(NULL) return NULL - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetSuperclass_2">JNIEnv_GetSuperclass_2</a></td><td> jclass GetSuperclass(jclass sub) </td><td>(clazz)</td><td>GetSuperclass(existing class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetSuperclass_3">JNIEnv_GetSuperclass_3</a></td><td> jclass GetSuperclass(jclass sub) </td><td>(clazz)</td><td>GetSuperclass(interface) return NULL - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetSuperclass_4">JNIEnv_GetSuperclass_4</a></td><td> jclass GetSuperclass(jclass sub) </td><td>(clazz)</td><td>GetSuperclass(lava.lang.Object) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsAssignableFrom_1">JNIEnv_IsAssignableFrom_1</a></td><td> jboolean IsAssignableFrom(jclass sub, jclass sup) </td><td>(clazz1, clazz1) )</td><td>IsAssignableFrom(class, superclass) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsAssignableFrom_2">JNIEnv_IsAssignableFrom_2</a></td><td> jboolean IsAssignableFrom(jclass sub, jclass sup) </td><td>(NULL, NULL) )</td><td>IsAssignableFrom(NULL, NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsAssignableFrom_3">JNIEnv_IsAssignableFrom_3</a></td><td> jboolean IsAssignableFrom(jclass sub, jclass sup) </td><td>(clazz1, clazz) )</td><td>IsAssignableFrom(class, is not superclass of class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsAssignableFrom_4">JNIEnv_IsAssignableFrom_4</a></td><td> jboolean IsAssignableFrom(jclass sub, jclass sup) </td><td>(clazz, clazz) )</td><td>IsAssignableFrom(class, same class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsAssignableFrom_5">JNIEnv_IsAssignableFrom_5</a></td><td> jboolean IsAssignableFrom(jclass sub, jclass sup) </td><td>(clazz, clazz1) )</td><td>IsAssignableFrom(implements of interface, interface) return correct value</td></tr>
|
||||
<!--Total files: 13-->
|
||||
<tr><td><a name="JNIEnv_ExceptionClear_1">JNIEnv_ExceptionClear_1</a></td><td> void ExceptionClear() </td><td>()</td><td>ExceptionClear(exception being thrown) really clear exception!</td></tr>
|
||||
<tr><td><a name="JNIEnv_ExceptionClear_2">JNIEnv_ExceptionClear_2</a></td><td> void ExceptionClear() </td><td>()</td><td>ExceptionClear(no exception being thrown) do not failed!</td></tr>
|
||||
<tr><td><a name="JNIEnv_ExceptionDescribe_1">JNIEnv_ExceptionDescribe_1</a></td><td> void ExceptionDescribe() </td><td>()</td><td>ExceptionDescribe(exception being thrown) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ExceptionDescribe_2">JNIEnv_ExceptionDescribe_2</a></td><td> void ExceptionDescribe() </td><td>()</td><td>ExceptionDescribe(no exception being thrown) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ExceptionOccurred_1">JNIEnv_ExceptionOccurred_1</a></td><td> jthrowable ExceptionOccurred() </td><td>()</td><td>ExceptionOccurred(exception being thrown) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ExceptionOccurred_2">JNIEnv_ExceptionOccurred_2</a></td><td> jthrowable ExceptionOccurred() </td><td>()</td><td>ExceptionOccurred(no exception being thrown) is correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_FatalError_1">JNIEnv_FatalError_1</a></td><td> void FatalError(const char *msg) </td><td>("aaaaaa")</td><td>Crush - correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ThrowNew_1">JNIEnv_ThrowNew_1</a></td><td> jint ThrowNew(jclass clazz, const char *msg) </td><td>(clazz, "AAAAAAAA")</td><td>ThrowNew(java.lang.ArrayIndexOutOfBoundsException, non empty message) returns correct value and thrown ArrayIndexOutOfBoundsException</td></tr>
|
||||
<tr><td><a name="JNIEnv_ThrowNew_2">JNIEnv_ThrowNew_2</a></td><td> jint ThrowNew(jclass clazz, const char *msg) </td><td>(clazz, "")</td><td>ThrowNew(java.lang.ArrayIndexOutOfBoundsException, mess= \"\</td></tr>
|
||||
<tr><td><a name="JNIEnv_ThrowNew_3">JNIEnv_ThrowNew_3</a></td><td> jint ThrowNew(jclass clazz, const char *msg) </td><td>(clazz, NULL)</td><td>ThrowNew(java.lang.ArrayIndexOutOfBoundsException, mess= NULL) returns correct value and thrown ArrayIndexOutOfBoundsException</td></tr>
|
||||
<tr><td><a name="JNIEnv_ThrowNew_4">JNIEnv_ThrowNew_4</a></td><td> jint ThrowNew(jclass clazz, const char *msg) </td><td>(clazz, "test message")</td><td>ThrowNew(java.lang.String, message not empty) returns correct value and not thrown any exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_ThrowNew_5">JNIEnv_ThrowNew_5</a></td><td> jint ThrowNew(jclass clazz, const char *msg) </td><td>(NULL, NULL)</td><td>ThrowNew(NULL, NULL) returns correct value and not thrown any exception</td></tr>
|
||||
<tr><td><a name="JNIEnv_Throw_1">JNIEnv_Throw_1</a></td><td> jint Throw(jthrowable obj) </td><td>(obj)</td><td>Throw(java.lang.ArrayIndexOutOfBoundsException) returns correct value and thrown ArrayIndexOutOfBoundsException</td></tr>
|
||||
<tr><td><a name="JNIEnv_Throw_2">JNIEnv_Throw_2</a></td><td> jint Throw(jthrowable obj) </td><td>(NULL)</td><td>Throw(NULL) returns correct value and not thrown any Exceptions</td></tr>
|
||||
<!--Total files: 5-->
|
||||
<tr><td><a name="JNIEnv_DeleteGlobalRef_1">JNIEnv_DeleteGlobalRef_1</a></td><td> void DeleteGlobalRef(jobject gref) </td><td>(obj_ref)</td><td>DeleteGlobalRef work properly with correct parameter</td></tr>
|
||||
<tr><td><a name="JNIEnv_DeleteGlobalRef_2">JNIEnv_DeleteGlobalRef_2</a></td><td> void DeleteGlobalRef(jobject gref) </td><td>(NULL)</td><td>DeleteGlobalRef(NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_DeleteLocalRef_1">JNIEnv_DeleteLocalRef_1</a></td><td> void DeleteLocalRef(jobject obj) </td><td>(obj)</td><td>DeleteLocalRef working properly with correct parameter</td></tr>
|
||||
<tr><td><a name="JNIEnv_DeleteLocalRef_2">JNIEnv_DeleteLocalRef_2</a></td><td> void DeleteLocalRef(jobject obj) </td><td>(NULL)</td><td>DeleteLocalRef(NULL) passed</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewGlobalRef_1">JNIEnv_NewGlobalRef_1</a></td><td> jobject NewGlobalRef(jobject lobj) </td><td>(obj)</td><td>NewGlobalRef return correct value with correct object as parameter</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewGlobalRef_2">JNIEnv_NewGlobalRef_2</a></td><td> jobject NewGlobalRef(jobject lobj) </td><td>(NULL)</td><td>NewGlobalRef return correct value with object=NULL</td></tr>
|
||||
<!--Total files: 1-->
|
||||
<tr><td><a name="JNIEnv_GetJavaVM_1">JNIEnv_GetJavaVM_1</a></td><td> jint GetJavaVM(JavaVM **vm) </td><td>(NULL)</td><td>GetJavaVM work properly with NULL as JavaVM **</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetJavaVM_2">JNIEnv_GetJavaVM_2</a></td><td> jint GetJavaVM(JavaVM **vm) </td><td>(vm)</td><td>GetJavaVM work properly with correct parameters</td></tr>
|
||||
<!--Total files: 32-->
|
||||
<tr><td><a name="JNIEnv_AllocObject_1">JNIEnv_AllocObject_1</a></td><td> jobject AllocObject(jclass clazz) </td><td>(NULL)</td><td>AllocObject(NULL) return correct value - NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_AllocObject_2">JNIEnv_AllocObject_2</a></td><td> jobject AllocObject(jclass clazz) </td><td>(clazz)</td><td>AllocObject(correct class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_AllocObject_3">JNIEnv_AllocObject_3</a></td><td> jobject AllocObject(jclass clazz) </td><td>(clazz)</td><td>AllocObject(abstract class) return correct value - NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_AllocObject_4">JNIEnv_AllocObject_4</a></td><td> jobject AllocObject(jclass clazz) </td><td>(clazz)</td><td>AllocObject(interface) return correct value - NULL</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectClass_1">JNIEnv_GetObjectClass_1</a></td><td> jclass GetObjectClass(jobject obj) </td><td>(obj)</td><td>GetObjectClass(some object) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetObjectClass_2">JNIEnv_GetObjectClass_2</a></td><td> jclass GetObjectClass(jobject obj) </td><td>(NULL)</td><td>GetObjectClass(NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsInstanceOf_1">JNIEnv_IsInstanceOf_1</a></td><td> jboolean IsInstanceOf(jobject obj, jclass clazz) </td><td>(obj1, clazz1))</td><td>IsInstanceOf(some obj, its class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsInstanceOf_2">JNIEnv_IsInstanceOf_2</a></td><td> jboolean IsInstanceOf(jobject obj, jclass clazz) </td><td>(obj1, clazz2))</td><td>IsInstanceOf(some obj, its superclass) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsInstanceOf_3">JNIEnv_IsInstanceOf_3</a></td><td> jboolean IsInstanceOf(jobject obj, jclass clazz) </td><td>(obj1, clazz3))</td><td>IsInstanceOf(some obj, isn't superclass or class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsInstanceOf_4">JNIEnv_IsInstanceOf_4</a></td><td> jboolean IsInstanceOf(jobject obj, jclass clazz) </td><td>(NULL, clazz1))</td><td>IsInstanceOf(NULL, class) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsInstanceOf_5">JNIEnv_IsInstanceOf_5</a></td><td> jboolean IsInstanceOf(jobject obj, jclass clazz) </td><td>(NULL, NULL))</td><td>IsInstanceOf(NULL, NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsSameObject_1">JNIEnv_IsSameObject_1</a></td><td> jboolean IsSameObject(jobject obj1, jobject obj2) </td><td>(obj1, obj2) )</td><td>IsSameObject(obj, obj) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsSameObject_2">JNIEnv_IsSameObject_2</a></td><td> jboolean IsSameObject(jobject obj1, jobject obj2) </td><td>(obj, obj1))</td><td>IsSameObject(obj, another obj) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsSameObject_3">JNIEnv_IsSameObject_3</a></td><td> jboolean IsSameObject(jobject obj1, jobject obj2) </td><td>(obj, NULL) )</td><td>IsSameObject(obj, NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_IsSameObject_4">JNIEnv_IsSameObject_4</a></td><td> jboolean IsSameObject(jobject obj1, jobject obj2) </td><td>(NULL, NULL) )</td><td>IsSameObject(NULL, NULL) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_1">JNIEnv_NewObjectA_1</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA(all correct, int field) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_2">JNIEnv_NewObjectA_2</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(NULL, (jmethodID)1000, args)</td><td>NewObjectA for clazz = NULL and invalid constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_3">JNIEnv_NewObjectA_3</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA with java\\lang\\String as argument</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_4">JNIEnv_NewObjectA_4</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA with legal class and illegal constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_5">JNIEnv_NewObjectA_5</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, (jmethodID)1000, args)</td><td>NewObjectA for abstract class and invalid constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_6">JNIEnv_NewObjectA_6</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA for class and private constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_7">JNIEnv_NewObjectA_7</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA for class and protected constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_8">JNIEnv_NewObjectA_8</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA for class and package visible constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObjectA_9">JNIEnv_NewObjectA_9</a></td><td> jobject NewObjectA(jclass clazz, jmethodID methodID, jvalue *args) </td><td>(clazz, MethodID, args)</td><td>NewObjectA for class and public constructor without arguments</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_1">JNIEnv_NewObject_1</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, 555)</td><td>NewObject(all correct, int field) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_2">JNIEnv_NewObject_2</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(NULL, (jmethodID)1000, 555)</td><td>NewObject for clazz = NULL and invalid constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_3">JNIEnv_NewObject_3</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, str)</td><td>NewObject with java\\lang\\String as argument</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_4">JNIEnv_NewObject_4</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, 555)</td><td>NewObject with legal class and illegal constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_5">JNIEnv_NewObject_5</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, (jmethodID)1000, 555)</td><td>NewObject for abstract class and invalid constructor ID</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_6">JNIEnv_NewObject_6</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, NULL)</td><td>NewObject for class and private constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_7">JNIEnv_NewObject_7</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, NULL)</td><td>NewObject for class and protected constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_8">JNIEnv_NewObject_8</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, NULL)</td><td>NewObject for class and package visible constructor</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewObject_9">JNIEnv_NewObject_9</a></td><td> jobject NewObject(jclass clazz, jmethodID methodID, ...) </td><td>(clazz, MethodID, NULL)</td><td>NewObject for class and public constructor without arguments</td></tr>
|
||||
<!--Total files: 23-->
|
||||
<tr><td><a name="JNIEnv_GetStringChars_1">JNIEnv_GetStringChars_1</a></td><td> const jchar *GetStringChars(jstring str, jboolean *isCopy) </td><td>(NULL, isCopy)</td><td>GetStringChars(NULL, isCopy) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringChars_2">JNIEnv_GetStringChars_2</a></td><td> const jchar *GetStringChars(jstring str, jboolean *isCopy) </td><td>(str, isCopy)</td><td>GetStringChars(empty, isCopy) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringChars_3">JNIEnv_GetStringChars_3</a></td><td> const jchar *GetStringChars(jstring str, jboolean *isCopy) </td><td>(str, isCopy)</td><td>GetStringChars(empty, isCopy) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringChars_4">JNIEnv_GetStringChars_4</a></td><td> const jchar *GetStringChars(jstring str, jboolean *isCopy) </td><td>(str, NULL)</td><td>GetStringChars(empty, isCopy) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringLength_1">JNIEnv_GetStringLength_1</a></td><td> jsize GetStringLength(jstring str) </td><td>(NULL)</td><td>GetStringLength(NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringLength_2">JNIEnv_GetStringLength_2</a></td><td> jsize GetStringLength(jstring str) </td><td>(str)</td><td>GetStringLength(NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringLength_3">JNIEnv_GetStringLength_3</a></td><td> jsize GetStringLength(jstring str) </td><td>(str)</td><td>GetStringLength(NULL) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFChars_1">JNIEnv_GetStringUTFChars_1</a></td><td> const char* GetStringUTFChars(jstring str, jboolean *isCopy) </td><td>(str, NULL)</td><td>GetStringUTFChars returns correct value (non-empty string and isCopy = NULL)</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFChars_2">JNIEnv_GetStringUTFChars_2</a></td><td> const char* GetStringUTFChars(jstring str, jboolean *isCopy) </td><td>(str, &isCopy)</td><td>GetStringUTFChars returns correct value (string=NULL and isCopy is not NULL)</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFChars_3">JNIEnv_GetStringUTFChars_3</a></td><td> const char* GetStringUTFChars(jstring str, jboolean *isCopy) </td><td>(str, &isCopy)</td><td>GetStringUTFChars returns correct value (string is empty and isCopy is not NULL)</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFChars_4">JNIEnv_GetStringUTFChars_4</a></td><td> const char* GetStringUTFChars(jstring str, jboolean *isCopy) </td><td>(str, &isCopy)</td><td>GetStringUTFChars returns correct value (string=12345678 and isCopy is not NULL)</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFLength_1">JNIEnv_GetStringUTFLength_1</a></td><td> jsize GetStringUTFLength(jstring str) </td><td>(str)</td><td>GetStringUTFLength(correct string) return correct value!</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFLength_2">JNIEnv_GetStringUTFLength_2</a></td><td> jsize GetStringUTFLength(jstring str) </td><td>(str)</td><td>GetStringUTFLength(empty string) return correct value!</td></tr>
|
||||
<tr><td><a name="JNIEnv_GetStringUTFLength_3">JNIEnv_GetStringUTFLength_3</a></td><td> jsize GetStringUTFLength(jstring str) </td><td>(str)</td><td>GetStringUTFLength(string == NULL) return correct value!</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewStringUTF_1">JNIEnv_NewStringUTF_1</a></td><td> jstring NewStringUTF(const char *utf) </td><td>("12345678")</td><td>NewStringUTF(non empty string) return correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewStringUTF_2">JNIEnv_NewStringUTF_2</a></td><td> jstring NewStringUTF(const char *utf) </td><td>("")</td><td>NewStringUTF(\"\</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewStringUTF_3">JNIEnv_NewStringUTF_3</a></td><td> jstring NewStringUTF(const char *utf) </td><td>(NULL)</td><td>NewStringUTF(NULL) == NULL, correct!</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewString_1">JNIEnv_NewString_1</a></td><td> jstring NewString(const jchar *unicode, jsize len) </td><td>(NULL, 0)</td><td>NewString(NULL, 0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewString_2">JNIEnv_NewString_2</a></td><td> jstring NewString(const jchar *unicode, jsize len) </td><td>(str_chars, 0)</td><td>NewString(correct, 0) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_NewString_3">JNIEnv_NewString_3</a></td><td> jstring NewString(const jchar *unicode, jsize len) </td><td>(str_chars, 4)</td><td>NewString(correct, correct) returns correct value</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseStringChars_1">JNIEnv_ReleaseStringChars_1</a></td><td> void ReleaseStringChars(jstring str, const jchar *chars) </td><td>(NULL, NULL)</td><td>ReleaseStringChars(NULL, NULL) correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseStringChars_2">JNIEnv_ReleaseStringChars_2</a></td><td> void ReleaseStringChars(jstring str, const jchar *chars) </td><td>(str, chars)</td><td>ReleaseStringChars(correct, correct) correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseStringUTFChars_1">JNIEnv_ReleaseStringUTFChars_1</a></td><td> void ReleaseStringUTFChars(jstring str, const char* chars) </td><td>(str, str_chars)</td><td>ReleaseStringUTFChars(correct, correct) correct</td></tr>
|
||||
<tr><td><a name="JNIEnv_ReleaseStringUTFChars_2">JNIEnv_ReleaseStringUTFChars_2</a></td><td> void ReleaseStringUTFChars(jstring str, const char* chars) </td><td>(NULL, NULL)</td><td>ReleaseStringUTFChars(NULL, NULL) do not failed</td></tr>
|
||||
<!--Total files: 0-->
|
||||
<tr><td><a name="JNIEnv_GetVersion_1">JNIEnv_GetVersion_1</a></td><td> jint GetVersion() </td><td>()</td><td>GetVersion passed</td></tr>
|
||||
|
||||
|
||||
</table></body></html>
|
||||
|
|
@ -1,758 +0,0 @@
|
|||
########################### LCM tests #######################
|
||||
LCM_StartupLiveConnect_1
|
||||
LCM_StartupLiveConnect_2
|
||||
LCM_ShutdownLiveConnect_1
|
||||
LCM_ShutdownLiveConnect_2
|
||||
LCM_IsLiveConnectEnabled_1
|
||||
LCM_IsLiveConnectEnabled_2
|
||||
LCM_InitLiveConnectClasses_1
|
||||
LCM_WrapJavaObject_1
|
||||
LCM_WrapJavaObject_2
|
||||
#
|
||||
#
|
||||
############################# TM tests #########################
|
||||
#
|
||||
ThreadManager_PostEvent_1
|
||||
ThreadManager_PostEvent_2
|
||||
ThreadManager_PostEvent_3
|
||||
ThreadManager_PostEvent_4
|
||||
ThreadManager_PostEvent_5
|
||||
ThreadManager_PostEvent_6
|
||||
ThreadManager_PostEvent_7
|
||||
ThreadManager_CreateThread_1
|
||||
ThreadManager_CreateThread_2
|
||||
ThreadManager_CreateThread_3
|
||||
ThreadManager_CreateThread_4
|
||||
ThreadManager_NotifyAll_1
|
||||
ThreadManager_NotifyAll_2
|
||||
ThreadManager_NotifyAll_3
|
||||
ThreadManager_NotifyAll_4
|
||||
ThreadManager_Notify_1
|
||||
ThreadManager_Notify_2
|
||||
ThreadManager_Notify_3
|
||||
ThreadManager_Notify_4
|
||||
ThreadManager_Wait_1
|
||||
ThreadManager_Wait_2
|
||||
ThreadManager_Wait_3
|
||||
ThreadManager_Wait_4
|
||||
ThreadManager_ExitMonitor_1
|
||||
ThreadManager_ExitMonitor_2
|
||||
ThreadManager_ExitMonitor_3
|
||||
ThreadManager_ExitMonitor_4
|
||||
ThreadManager_EnterMonitor_1
|
||||
ThreadManager_EnterMonitor_4
|
||||
ThreadManager_GetCurrentThread_1
|
||||
ThreadManager_Sleep_1
|
||||
ThreadManager_Sleep_2
|
||||
#
|
||||
#
|
||||
############################## JVMManager tests #################
|
||||
#
|
||||
JVMManager_CreateProxyJNI_1
|
||||
JVMManager_CreateProxyJNI_2
|
||||
JVMManager_CreateProxyJNI_3
|
||||
JVMManager_CreateProxyJNI_4
|
||||
JVMManager_GetProxyJNI_1
|
||||
JVMManager_GetProxyJNI_2
|
||||
JVMManager_GetProxyJNI_3
|
||||
JVMManager_IsJavaEnabled_1
|
||||
JVMManager_ShowJavaConsole_1
|
||||
JVMManager_ShowJavaConsole_2
|
||||
#
|
||||
############################# JNIEnv tests ######################
|
||||
#
|
||||
JNIEnv_GetBooleanField_1
|
||||
JNIEnv_GetBooleanField_2
|
||||
JNIEnv_GetBooleanField_3
|
||||
JNIEnv_GetBooleanField_4
|
||||
JNIEnv_GetBooleanField_5
|
||||
JNIEnv_GetBooleanField_6
|
||||
JNIEnv_GetByteField_1
|
||||
JNIEnv_GetByteField_2
|
||||
JNIEnv_GetByteField_3
|
||||
JNIEnv_GetByteField_4
|
||||
JNIEnv_GetByteField_5
|
||||
JNIEnv_GetByteField_6
|
||||
JNIEnv_GetCharField_1
|
||||
JNIEnv_GetCharField_2
|
||||
JNIEnv_GetCharField_3
|
||||
JNIEnv_GetCharField_4
|
||||
JNIEnv_GetCharField_5
|
||||
JNIEnv_GetDoubleField_1
|
||||
JNIEnv_GetDoubleField_2
|
||||
JNIEnv_GetDoubleField_3
|
||||
JNIEnv_GetDoubleField_4
|
||||
JNIEnv_GetDoubleField_5
|
||||
JNIEnv_GetDoubleField_6
|
||||
JNIEnv_GetFieldID_1
|
||||
JNIEnv_GetFieldID_10
|
||||
JNIEnv_GetFieldID_11
|
||||
JNIEnv_GetFieldID_12
|
||||
JNIEnv_GetFieldID_13
|
||||
JNIEnv_GetFieldID_14
|
||||
JNIEnv_GetFieldID_15
|
||||
JNIEnv_GetFieldID_16
|
||||
JNIEnv_GetFieldID_17
|
||||
JNIEnv_GetFieldID_18
|
||||
JNIEnv_GetFieldID_19
|
||||
JNIEnv_GetFieldID_2
|
||||
JNIEnv_GetFieldID_20
|
||||
JNIEnv_GetFieldID_3
|
||||
JNIEnv_GetFieldID_4
|
||||
JNIEnv_GetFieldID_5
|
||||
JNIEnv_GetFieldID_6
|
||||
JNIEnv_GetFieldID_7
|
||||
JNIEnv_GetFieldID_8
|
||||
JNIEnv_GetFieldID_9
|
||||
JNIEnv_GetFloatField_1
|
||||
JNIEnv_GetFloatField_2
|
||||
JNIEnv_GetFloatField_3
|
||||
JNIEnv_GetFloatField_4
|
||||
JNIEnv_GetFloatField_5
|
||||
JNIEnv_GetFloatField_6
|
||||
JNIEnv_GetIntField_1
|
||||
JNIEnv_GetIntField_2
|
||||
JNIEnv_GetIntField_3
|
||||
JNIEnv_GetIntField_4
|
||||
JNIEnv_GetIntField_5
|
||||
JNIEnv_GetIntField_6
|
||||
JNIEnv_GetIntField_7
|
||||
JNIEnv_GetLongField_1
|
||||
JNIEnv_GetLongField_2
|
||||
JNIEnv_GetLongField_3
|
||||
JNIEnv_GetLongField_4
|
||||
JNIEnv_GetLongField_5
|
||||
JNIEnv_GetLongField_6
|
||||
JNIEnv_GetObjectField_1
|
||||
JNIEnv_GetObjectField_2
|
||||
JNIEnv_GetObjectField_3
|
||||
JNIEnv_GetObjectField_4
|
||||
JNIEnv_GetObjectField_5
|
||||
JNIEnv_GetShortField_1
|
||||
JNIEnv_GetShortField_2
|
||||
JNIEnv_GetShortField_3
|
||||
JNIEnv_GetShortField_4
|
||||
JNIEnv_GetShortField_5
|
||||
JNIEnv_GetShortField_6
|
||||
JNIEnv_SetBooleanField_1
|
||||
JNIEnv_SetBooleanField_2
|
||||
JNIEnv_SetBooleanField_3
|
||||
JNIEnv_SetBooleanField_4
|
||||
JNIEnv_SetBooleanField_5
|
||||
JNIEnv_SetBooleanField_6
|
||||
JNIEnv_SetBooleanField_7
|
||||
JNIEnv_SetByteField_1
|
||||
JNIEnv_SetByteField_2
|
||||
JNIEnv_SetByteField_3
|
||||
JNIEnv_SetByteField_4
|
||||
JNIEnv_SetByteField_5
|
||||
JNIEnv_SetByteField_6
|
||||
JNIEnv_SetCharField_1
|
||||
JNIEnv_SetCharField_2
|
||||
JNIEnv_SetCharField_3
|
||||
JNIEnv_SetCharField_4
|
||||
JNIEnv_SetCharField_5
|
||||
JNIEnv_SetCharField_6
|
||||
JNIEnv_SetDoubleField_1
|
||||
JNIEnv_SetDoubleField_2
|
||||
JNIEnv_SetDoubleField_3
|
||||
JNIEnv_SetDoubleField_4
|
||||
JNIEnv_SetDoubleField_5
|
||||
JNIEnv_SetDoubleField_6
|
||||
JNIEnv_SetFloatField_1
|
||||
JNIEnv_SetFloatField_2
|
||||
JNIEnv_SetFloatField_3
|
||||
JNIEnv_SetFloatField_4
|
||||
JNIEnv_SetFloatField_5
|
||||
JNIEnv_SetIntField_1
|
||||
JNIEnv_SetIntField_2
|
||||
JNIEnv_SetIntField_3
|
||||
JNIEnv_SetIntField_4
|
||||
JNIEnv_SetIntField_5
|
||||
JNIEnv_SetLongField_1
|
||||
JNIEnv_SetLongField_2
|
||||
JNIEnv_SetLongField_3
|
||||
JNIEnv_SetLongField_4
|
||||
JNIEnv_SetLongField_5
|
||||
JNIEnv_SetObjectField_1
|
||||
JNIEnv_SetObjectField_2
|
||||
JNIEnv_SetObjectField_3
|
||||
JNIEnv_SetObjectField_4
|
||||
JNIEnv_SetObjectField_5
|
||||
JNIEnv_SetShortField_1
|
||||
JNIEnv_SetShortField_2
|
||||
JNIEnv_SetShortField_3
|
||||
JNIEnv_SetShortField_4
|
||||
JNIEnv_SetShortField_5
|
||||
JNIEnv_GetStaticBooleanField_1
|
||||
JNIEnv_GetStaticBooleanField_2
|
||||
JNIEnv_GetStaticBooleanField_3
|
||||
JNIEnv_GetStaticBooleanField_4
|
||||
JNIEnv_GetStaticBooleanField_5
|
||||
JNIEnv_GetStaticBooleanField_6
|
||||
JNIEnv_GetStaticByteField_1
|
||||
JNIEnv_GetStaticByteField_2
|
||||
JNIEnv_GetStaticByteField_3
|
||||
JNIEnv_GetStaticByteField_4
|
||||
JNIEnv_GetStaticByteField_5
|
||||
JNIEnv_GetStaticByteField_6
|
||||
JNIEnv_GetStaticCharField_1
|
||||
JNIEnv_GetStaticCharField_2
|
||||
JNIEnv_GetStaticCharField_3
|
||||
JNIEnv_GetStaticCharField_4
|
||||
JNIEnv_GetStaticCharField_5
|
||||
JNIEnv_GetStaticDoubleField_1
|
||||
JNIEnv_GetStaticDoubleField_2
|
||||
JNIEnv_GetStaticDoubleField_3
|
||||
JNIEnv_GetStaticDoubleField_4
|
||||
JNIEnv_GetStaticDoubleField_5
|
||||
JNIEnv_GetStaticFieldID_1
|
||||
JNIEnv_GetStaticFieldID_10
|
||||
JNIEnv_GetStaticFieldID_11
|
||||
JNIEnv_GetStaticFieldID_12
|
||||
JNIEnv_GetStaticFieldID_13
|
||||
JNIEnv_GetStaticFieldID_14
|
||||
JNIEnv_GetStaticFieldID_15
|
||||
JNIEnv_GetStaticFieldID_16
|
||||
JNIEnv_GetStaticFieldID_17
|
||||
JNIEnv_GetStaticFieldID_18
|
||||
JNIEnv_GetStaticFieldID_19
|
||||
JNIEnv_GetStaticFieldID_2
|
||||
JNIEnv_GetStaticFieldID_20
|
||||
JNIEnv_GetStaticFieldID_3
|
||||
JNIEnv_GetStaticFieldID_4
|
||||
JNIEnv_GetStaticFieldID_5
|
||||
JNIEnv_GetStaticFieldID_6
|
||||
JNIEnv_GetStaticFieldID_7
|
||||
JNIEnv_GetStaticFieldID_8
|
||||
JNIEnv_GetStaticFieldID_9
|
||||
JNIEnv_GetStaticFloatField_1
|
||||
JNIEnv_GetStaticFloatField_2
|
||||
JNIEnv_GetStaticFloatField_3
|
||||
JNIEnv_GetStaticFloatField_4
|
||||
JNIEnv_GetStaticFloatField_5
|
||||
JNIEnv_GetStaticFloatField_6
|
||||
JNIEnv_GetStaticIntField_1
|
||||
JNIEnv_GetStaticIntField_2
|
||||
JNIEnv_GetStaticIntField_3
|
||||
JNIEnv_GetStaticIntField_4
|
||||
JNIEnv_GetStaticIntField_5
|
||||
JNIEnv_GetStaticIntField_6
|
||||
JNIEnv_GetStaticLongField_1
|
||||
JNIEnv_GetStaticLongField_2
|
||||
JNIEnv_SetStaticIntField_1
|
||||
JNIEnv_GetStaticLongField_3
|
||||
JNIEnv_GetStaticLongField_4
|
||||
JNIEnv_GetStaticLongField_5
|
||||
JNIEnv_GetStaticLongField_6
|
||||
JNIEnv_GetStaticObjectField_1
|
||||
JNIEnv_GetStaticObjectField_2
|
||||
JNIEnv_GetStaticObjectField_3
|
||||
JNIEnv_GetStaticObjectField_4
|
||||
JNIEnv_GetStaticObjectField_5
|
||||
JNIEnv_GetStaticShortField_1
|
||||
JNIEnv_GetStaticShortField_2
|
||||
JNIEnv_GetStaticShortField_3
|
||||
JNIEnv_GetStaticShortField_4
|
||||
JNIEnv_GetStaticShortField_5
|
||||
JNIEnv_GetStaticShortField_6
|
||||
JNIEnv_SetStaticBooleanField_1
|
||||
JNIEnv_SetStaticBooleanField_2
|
||||
JNIEnv_SetStaticBooleanField_3
|
||||
JNIEnv_SetStaticBooleanField_4
|
||||
JNIEnv_SetStaticBooleanField_5
|
||||
JNIEnv_SetStaticBooleanField_6
|
||||
JNIEnv_SetStaticByteField_1
|
||||
JNIEnv_SetStaticByteField_2
|
||||
JNIEnv_SetStaticByteField_3
|
||||
JNIEnv_SetStaticByteField_4
|
||||
JNIEnv_SetStaticByteField_5
|
||||
JNIEnv_SetStaticByteField_6
|
||||
JNIEnv_SetStaticCharField_1
|
||||
JNIEnv_SetStaticCharField_2
|
||||
JNIEnv_SetStaticCharField_3
|
||||
JNIEnv_SetStaticCharField_4
|
||||
JNIEnv_SetStaticCharField_5
|
||||
JNIEnv_SetStaticCharField_6
|
||||
JNIEnv_SetStaticDoubleField_1
|
||||
JNIEnv_SetStaticDoubleField_2
|
||||
JNIEnv_SetStaticDoubleField_3
|
||||
JNIEnv_SetStaticDoubleField_4
|
||||
JNIEnv_SetStaticDoubleField_5
|
||||
JNIEnv_SetStaticDoubleField_6
|
||||
JNIEnv_SetStaticFloatField_1
|
||||
JNIEnv_SetStaticFloatField_2
|
||||
JNIEnv_SetStaticFloatField_3
|
||||
JNIEnv_SetStaticFloatField_4
|
||||
JNIEnv_SetStaticFloatField_5
|
||||
JNIEnv_SetStaticIntField_2
|
||||
JNIEnv_SetStaticIntField_3
|
||||
JNIEnv_SetStaticIntField_4
|
||||
JNIEnv_SetStaticIntField_5
|
||||
JNIEnv_SetStaticLongField_1
|
||||
JNIEnv_SetStaticLongField_2
|
||||
JNIEnv_SetStaticLongField_3
|
||||
JNIEnv_SetStaticLongField_4
|
||||
JNIEnv_SetStaticLongField_5
|
||||
JNIEnv_SetStaticObjectField_1
|
||||
JNIEnv_SetStaticObjectField_2
|
||||
JNIEnv_SetStaticObjectField_3
|
||||
JNIEnv_SetStaticObjectField_4
|
||||
JNIEnv_SetStaticObjectField_5
|
||||
JNIEnv_SetStaticShortField_1
|
||||
JNIEnv_SetStaticShortField_2
|
||||
JNIEnv_SetStaticShortField_3
|
||||
JNIEnv_SetStaticShortField_4
|
||||
JNIEnv_SetStaticShortField_5
|
||||
JNIEnv_GetArrayLength_1
|
||||
JNIEnv_GetArrayLength_2
|
||||
JNIEnv_GetArrayLength_3
|
||||
JNIEnv_GetBooleanArrayElements_1
|
||||
JNIEnv_GetBooleanArrayElements_2
|
||||
JNIEnv_GetBooleanArrayElements_3
|
||||
JNIEnv_GetBooleanArrayRegion_1
|
||||
JNIEnv_GetByteArrayElements_1
|
||||
JNIEnv_GetByteArrayElements_2
|
||||
JNIEnv_GetByteArrayElements_3
|
||||
JNIEnv_GetByteArrayRegion_1
|
||||
JNIEnv_GetCharArrayElements_1
|
||||
JNIEnv_GetCharArrayElements_2
|
||||
JNIEnv_GetCharArrayElements_3
|
||||
JNIEnv_GetCharArrayRegion_1
|
||||
JNIEnv_GetDoubleArrayElements_1
|
||||
JNIEnv_GetDoubleArrayElements_2
|
||||
JNIEnv_GetDoubleArrayElements_3
|
||||
JNIEnv_GetDoubleArrayRegion_1
|
||||
JNIEnv_GetFloatArrayElements_1
|
||||
JNIEnv_GetFloatArrayElements_2
|
||||
JNIEnv_GetFloatArrayElements_3
|
||||
JNIEnv_GetFloatArrayRegion_1
|
||||
JNIEnv_GetIntArrayElements_1
|
||||
JNIEnv_GetIntArrayElements_2
|
||||
JNIEnv_GetIntArrayRegion_1
|
||||
JNIEnv_GetIntArrayElements_3
|
||||
JNIEnv_GetIntArrayRegion_2
|
||||
JNIEnv_GetIntArrayRegion_3
|
||||
JNIEnv_GetIntArrayRegion_4
|
||||
JNIEnv_GetLongArrayElements_1
|
||||
JNIEnv_GetLongArrayElements_2
|
||||
JNIEnv_GetLongArrayElements_3
|
||||
JNIEnv_GetLongArrayRegion_1
|
||||
JNIEnv_GetObjectArrayElement_1
|
||||
JNIEnv_GetObjectArrayElement_2
|
||||
JNIEnv_GetObjectArrayElement_3
|
||||
JNIEnv_GetObjectArrayElement_4
|
||||
JNIEnv_GetObjectArrayElement_5
|
||||
JNIEnv_GetShortArrayElements_1
|
||||
JNIEnv_GetShortArrayElements_2
|
||||
JNIEnv_GetShortArrayElements_3
|
||||
JNIEnv_GetShortArrayRegion_1
|
||||
JNIEnv_NewBooleanArray_1
|
||||
JNIEnv_NewBooleanArray_2
|
||||
JNIEnv_NewBooleanArray_3
|
||||
JNIEnv_NewByteArray_1
|
||||
JNIEnv_NewByteArray_2
|
||||
JNIEnv_NewByteArray_3
|
||||
JNIEnv_NewCharArray_1
|
||||
JNIEnv_NewCharArray_2
|
||||
JNIEnv_NewCharArray_3
|
||||
JNIEnv_NewDoubleArray_1
|
||||
JNIEnv_NewDoubleArray_2
|
||||
JNIEnv_NewDoubleArray_3
|
||||
JNIEnv_NewFloatArray_1
|
||||
JNIEnv_NewFloatArray_2
|
||||
JNIEnv_NewFloatArray_3
|
||||
JNIEnv_NewIntArray_1
|
||||
JNIEnv_NewIntArray_2
|
||||
JNIEnv_NewIntArray_3
|
||||
JNIEnv_NewLongArray_1
|
||||
JNIEnv_NewLongArray_2
|
||||
JNIEnv_NewLongArray_3
|
||||
JNIEnv_NewObjectArray_1
|
||||
JNIEnv_NewObjectArray_2
|
||||
JNIEnv_NewObjectArray_3
|
||||
JNIEnv_NewObjectArray_4
|
||||
JNIEnv_NewObjectArray_5
|
||||
JNIEnv_NewObjectArray_6
|
||||
JNIEnv_NewShortArray_1
|
||||
JNIEnv_NewShortArray_2
|
||||
JNIEnv_NewShortArray_3
|
||||
JNIEnv_ReleaseBooleanArrayElements_1
|
||||
JNIEnv_ReleaseBooleanArrayElements_2
|
||||
JNIEnv_ReleaseBooleanArrayElements_3
|
||||
JNIEnv_ReleaseByteArrayElements_1
|
||||
JNIEnv_ReleaseByteArrayElements_2
|
||||
JNIEnv_ReleaseByteArrayElements_3
|
||||
JNIEnv_ReleaseCharArrayElements_1
|
||||
JNIEnv_ReleaseCharArrayElements_2
|
||||
JNIEnv_ReleaseCharArrayElements_3
|
||||
JNIEnv_ReleaseDoubleArrayElements_1
|
||||
JNIEnv_ReleaseDoubleArrayElements_2
|
||||
JNIEnv_ReleaseDoubleArrayElements_3
|
||||
JNIEnv_ReleaseFloatArrayElements_1
|
||||
JNIEnv_ReleaseFloatArrayElements_2
|
||||
JNIEnv_ReleaseFloatArrayElements_3
|
||||
JNIEnv_ReleaseIntArrayElements_1
|
||||
JNIEnv_ReleaseIntArrayElements_2
|
||||
JNIEnv_ReleaseIntArrayElements_3
|
||||
JNIEnv_ReleaseLongArrayElements_1
|
||||
JNIEnv_ReleaseLongArrayElements_2
|
||||
JNIEnv_ReleaseLongArrayElements_3
|
||||
JNIEnv_ReleaseShortArrayElements_1
|
||||
JNIEnv_ReleaseShortArrayElements_2
|
||||
JNIEnv_ReleaseShortArrayElements_3
|
||||
JNIEnv_SetBooleanArrayRegion_1
|
||||
JNIEnv_SetByteArrayRegion_1
|
||||
JNIEnv_SetCharArrayRegion_1
|
||||
JNIEnv_SetDoubleArrayRegion_1
|
||||
JNIEnv_SetFloatArrayRegion_1
|
||||
JNIEnv_SetIntArrayRegion_1
|
||||
JNIEnv_SetIntArrayRegion_2
|
||||
JNIEnv_SetIntArrayRegion_3
|
||||
JNIEnv_SetIntArrayRegion_4
|
||||
JNIEnv_SetLongArrayRegion_1
|
||||
JNIEnv_SetObjectArrayElement_1
|
||||
JNIEnv_SetObjectArrayElement_2
|
||||
JNIEnv_SetObjectArrayElement_3
|
||||
JNIEnv_SetObjectArrayElement_4
|
||||
JNIEnv_SetObjectArrayElement_5
|
||||
JNIEnv_SetShortArrayRegion_1
|
||||
JNIEnv_CallBooleanMethod_1
|
||||
JNIEnv_CallBooleanMethod_2
|
||||
JNIEnv_CallBooleanMethod_3
|
||||
JNIEnv_CallBooleanMethod_4
|
||||
JNIEnv_CallByteMethod_1
|
||||
JNIEnv_CallByteMethod_2
|
||||
JNIEnv_CallByteMethod_3
|
||||
JNIEnv_CallByteMethod_4
|
||||
JNIEnv_CallCharMethod_1
|
||||
JNIEnv_CallCharMethod_2
|
||||
JNIEnv_CallCharMethod_3
|
||||
JNIEnv_CallCharMethod_4
|
||||
JNIEnv_CallDoubleMethod_1
|
||||
JNIEnv_CallDoubleMethod_2
|
||||
JNIEnv_CallDoubleMethod_3
|
||||
JNIEnv_CallDoubleMethod_4
|
||||
JNIEnv_CallFloatMethod_1
|
||||
JNIEnv_CallFloatMethod_2
|
||||
JNIEnv_CallFloatMethod_3
|
||||
JNIEnv_CallFloatMethod_4
|
||||
JNIEnv_CallIntMethod_1
|
||||
JNIEnv_CallIntMethod_10
|
||||
JNIEnv_CallIntMethod_11
|
||||
JNIEnv_CallIntMethod_12
|
||||
JNIEnv_CallIntMethod_13
|
||||
JNIEnv_CallIntMethod_14
|
||||
JNIEnv_CallIntMethod_15
|
||||
JNIEnv_CallIntMethod_16
|
||||
JNIEnv_CallIntMethod_17
|
||||
JNIEnv_CallIntMethod_18
|
||||
JNIEnv_CallIntMethod_19
|
||||
JNIEnv_CallIntMethod_2
|
||||
JNIEnv_CallIntMethod_3
|
||||
JNIEnv_CallIntMethod_4
|
||||
JNIEnv_CallIntMethod_5
|
||||
JNIEnv_CallIntMethod_6
|
||||
JNIEnv_CallIntMethod_7
|
||||
JNIEnv_CallIntMethod_8
|
||||
JNIEnv_CallIntMethod_9
|
||||
JNIEnv_CallLongMethod_1
|
||||
JNIEnv_CallLongMethod_2
|
||||
JNIEnv_CallLongMethod_3
|
||||
JNIEnv_CallLongMethod_4
|
||||
JNIEnv_CallNonvirtualBooleanMethod_1
|
||||
JNIEnv_CallNonvirtualBooleanMethod_2
|
||||
JNIEnv_CallNonvirtualByteMethod_1
|
||||
JNIEnv_CallNonvirtualBooleanMethod_3
|
||||
JNIEnv_CallNonvirtualBooleanMethod_4
|
||||
JNIEnv_CallNonvirtualByteMethod_2
|
||||
JNIEnv_CallNonvirtualByteMethod_3
|
||||
JNIEnv_CallNonvirtualByteMethod_4
|
||||
JNIEnv_CallNonvirtualCharMethod_1
|
||||
JNIEnv_CallNonvirtualCharMethod_2
|
||||
JNIEnv_CallNonvirtualCharMethod_3
|
||||
JNIEnv_CallNonvirtualCharMethod_4
|
||||
JNIEnv_CallNonvirtualDoubleMethod_1
|
||||
JNIEnv_CallNonvirtualDoubleMethod_2
|
||||
JNIEnv_CallNonvirtualDoubleMethod_3
|
||||
JNIEnv_CallNonvirtualDoubleMethod_4
|
||||
JNIEnv_CallNonvirtualFloatMethod_1
|
||||
JNIEnv_CallNonvirtualFloatMethod_2
|
||||
JNIEnv_CallNonvirtualFloatMethod_3
|
||||
JNIEnv_CallNonvirtualFloatMethod_4
|
||||
JNIEnv_CallNonvirtualIntMethod_1
|
||||
JNIEnv_CallNonvirtualIntMethod_10
|
||||
JNIEnv_CallNonvirtualIntMethod_11
|
||||
JNIEnv_CallNonvirtualIntMethod_12
|
||||
JNIEnv_CallNonvirtualIntMethod_13
|
||||
JNIEnv_CallNonvirtualIntMethod_14
|
||||
JNIEnv_CallNonvirtualIntMethod_15
|
||||
JNIEnv_GetMethodID_1
|
||||
JNIEnv_CallNonvirtualIntMethod_16
|
||||
JNIEnv_CallNonvirtualIntMethod_17
|
||||
JNIEnv_CallNonvirtualIntMethod_18
|
||||
JNIEnv_CallNonvirtualIntMethod_19
|
||||
JNIEnv_CallNonvirtualIntMethod_2
|
||||
JNIEnv_CallNonvirtualIntMethod_20
|
||||
JNIEnv_CallNonvirtualIntMethod_21
|
||||
JNIEnv_CallNonvirtualIntMethod_22
|
||||
JNIEnv_CallNonvirtualIntMethod_23
|
||||
JNIEnv_CallNonvirtualIntMethod_24
|
||||
JNIEnv_CallNonvirtualIntMethod_25
|
||||
JNIEnv_CallNonvirtualIntMethod_26
|
||||
JNIEnv_CallObjectMethod_1
|
||||
JNIEnv_CallNonvirtualIntMethod_27
|
||||
JNIEnv_CallNonvirtualIntMethod_28
|
||||
JNIEnv_CallNonvirtualIntMethod_29
|
||||
JNIEnv_CallNonvirtualIntMethod_30
|
||||
JNIEnv_CallNonvirtualIntMethod_31
|
||||
JNIEnv_CallNonvirtualIntMethod_32
|
||||
JNIEnv_CallNonvirtualIntMethod_33
|
||||
JNIEnv_CallNonvirtualIntMethod_34
|
||||
JNIEnv_CallNonvirtualIntMethod_4
|
||||
JNIEnv_CallNonvirtualIntMethod_5
|
||||
JNIEnv_CallNonvirtualIntMethod_7
|
||||
JNIEnv_CallNonvirtualIntMethod_8
|
||||
JNIEnv_CallObjectMethod_2
|
||||
JNIEnv_CallNonvirtualIntMethod_9
|
||||
JNIEnv_CallNonvirtualLongMethod_1
|
||||
JNIEnv_CallNonvirtualLongMethod_2
|
||||
JNIEnv_CallNonvirtualLongMethod_3
|
||||
JNIEnv_CallNonvirtualLongMethod_4
|
||||
JNIEnv_CallNonvirtualObjectMethod_1
|
||||
JNIEnv_CallNonvirtualObjectMethod_2
|
||||
JNIEnv_CallNonvirtualObjectMethod_3
|
||||
JNIEnv_CallNonvirtualObjectMethod_4
|
||||
JNIEnv_CallNonvirtualObjectMethod_5
|
||||
JNIEnv_CallNonvirtualObjectMethod_6
|
||||
JNIEnv_CallNonvirtualObjectMethod_7
|
||||
JNIEnv_CallNonvirtualShortMethod_1
|
||||
JNIEnv_CallNonvirtualShortMethod_2
|
||||
JNIEnv_CallNonvirtualShortMethod_3
|
||||
JNIEnv_CallNonvirtualShortMethod_4
|
||||
JNIEnv_CallNonvirtualVoidMethod_1
|
||||
JNIEnv_CallNonvirtualVoidMethod_2
|
||||
JNIEnv_CallObjectMethod_3
|
||||
JNIEnv_CallObjectMethod_4
|
||||
JNIEnv_CallObjectMethod_5
|
||||
JNIEnv_CallObjectMethod_6
|
||||
JNIEnv_CallObjectMethod_7
|
||||
JNIEnv_CallShortMethod_1
|
||||
JNIEnv_CallShortMethod_2
|
||||
JNIEnv_CallShortMethod_3
|
||||
JNIEnv_CallShortMethod_4
|
||||
JNIEnv_CallVoidMethod_1
|
||||
JNIEnv_CallVoidMethod_2
|
||||
JNIEnv_GetMethodID_10
|
||||
JNIEnv_GetMethodID_11
|
||||
JNIEnv_GetMethodID_12
|
||||
JNIEnv_GetMethodID_13
|
||||
JNIEnv_GetMethodID_14
|
||||
JNIEnv_GetMethodID_15
|
||||
JNIEnv_GetMethodID_16
|
||||
JNIEnv_GetMethodID_17
|
||||
JNIEnv_GetMethodID_18
|
||||
JNIEnv_GetMethodID_19
|
||||
JNIEnv_GetMethodID_2
|
||||
JNIEnv_GetMethodID_20
|
||||
JNIEnv_GetMethodID_21
|
||||
JNIEnv_GetMethodID_22
|
||||
JNIEnv_GetMethodID_23
|
||||
JNIEnv_GetMethodID_24
|
||||
JNIEnv_GetMethodID_25
|
||||
JNIEnv_GetMethodID_26
|
||||
JNIEnv_GetMethodID_27
|
||||
JNIEnv_GetMethodID_28
|
||||
JNIEnv_GetMethodID_29
|
||||
JNIEnv_GetMethodID_3
|
||||
JNIEnv_GetMethodID_30
|
||||
JNIEnv_GetMethodID_31
|
||||
JNIEnv_GetMethodID_32
|
||||
JNIEnv_GetMethodID_33
|
||||
JNIEnv_GetMethodID_34
|
||||
JNIEnv_GetMethodID_35
|
||||
JNIEnv_GetMethodID_36
|
||||
JNIEnv_GetMethodID_37
|
||||
JNIEnv_GetMethodID_38
|
||||
JNIEnv_GetMethodID_39
|
||||
JNIEnv_GetMethodID_4
|
||||
JNIEnv_GetMethodID_5
|
||||
JNIEnv_GetMethodID_6
|
||||
JNIEnv_GetMethodID_7
|
||||
JNIEnv_GetMethodID_8
|
||||
JNIEnv_GetMethodID_9
|
||||
JNIEnv_CallStaticBooleanMethod_1
|
||||
JNIEnv_CallStaticBooleanMethod_2
|
||||
JNIEnv_CallStaticBooleanMethod_3
|
||||
JNIEnv_CallStaticBooleanMethod_4
|
||||
JNIEnv_CallStaticByteMethod_1
|
||||
JNIEnv_CallStaticByteMethod_2
|
||||
JNIEnv_CallStaticByteMethod_3
|
||||
JNIEnv_CallStaticByteMethod_4
|
||||
JNIEnv_CallStaticCharMethod_1
|
||||
JNIEnv_CallStaticCharMethod_2
|
||||
JNIEnv_CallStaticCharMethod_3
|
||||
JNIEnv_CallStaticCharMethod_4
|
||||
JNIEnv_CallStaticDoubleMethod_1
|
||||
JNIEnv_CallStaticDoubleMethod_2
|
||||
JNIEnv_CallStaticDoubleMethod_3
|
||||
JNIEnv_CallStaticDoubleMethod_4
|
||||
JNIEnv_CallStaticFloatMethod_1
|
||||
JNIEnv_CallStaticFloatMethod_2
|
||||
JNIEnv_CallStaticFloatMethod_3
|
||||
JNIEnv_CallStaticFloatMethod_4
|
||||
JNIEnv_CallStaticIntMethod_1
|
||||
JNIEnv_CallStaticIntMethod_10
|
||||
JNIEnv_CallStaticIntMethod_11
|
||||
JNIEnv_CallStaticIntMethod_12
|
||||
JNIEnv_CallStaticIntMethod_13
|
||||
JNIEnv_CallStaticIntMethod_14
|
||||
JNIEnv_CallStaticIntMethod_15
|
||||
JNIEnv_CallStaticIntMethod_16
|
||||
JNIEnv_CallStaticIntMethod_17
|
||||
JNIEnv_CallStaticIntMethod_18
|
||||
JNIEnv_CallStaticIntMethod_19
|
||||
JNIEnv_CallStaticIntMethod_2
|
||||
JNIEnv_CallStaticIntMethod_20
|
||||
JNIEnv_CallStaticIntMethod_21
|
||||
JNIEnv_CallStaticIntMethod_4
|
||||
JNIEnv_CallStaticIntMethod_5
|
||||
JNIEnv_CallStaticIntMethod_7
|
||||
JNIEnv_CallStaticIntMethod_8
|
||||
JNIEnv_CallStaticIntMethod_9
|
||||
JNIEnv_CallStaticLongMethod_1
|
||||
JNIEnv_CallStaticLongMethod_2
|
||||
JNIEnv_CallStaticLongMethod_3
|
||||
JNIEnv_CallStaticLongMethod_4
|
||||
JNIEnv_CallStaticObjectMethod_1
|
||||
JNIEnv_CallStaticObjectMethod_2
|
||||
JNIEnv_CallStaticObjectMethod_3
|
||||
JNIEnv_CallStaticObjectMethod_4
|
||||
JNIEnv_CallStaticObjectMethod_5
|
||||
JNIEnv_CallStaticObjectMethod_6
|
||||
JNIEnv_CallStaticObjectMethod_7
|
||||
JNIEnv_CallStaticShortMethod_1
|
||||
JNIEnv_CallStaticShortMethod_2
|
||||
JNIEnv_CallStaticShortMethod_3
|
||||
JNIEnv_CallStaticShortMethod_4
|
||||
JNIEnv_CallStaticVoidMethod_1
|
||||
JNIEnv_CallStaticVoidMethod_2
|
||||
JNIEnv_GetStaticMethodID_1
|
||||
JNIEnv_GetStaticMethodID_10
|
||||
JNIEnv_GetStaticMethodID_11
|
||||
JNIEnv_GetStaticMethodID_12
|
||||
JNIEnv_GetStaticMethodID_13
|
||||
JNIEnv_GetStaticMethodID_14
|
||||
JNIEnv_GetStaticMethodID_15
|
||||
JNIEnv_GetStaticMethodID_16
|
||||
JNIEnv_GetStaticMethodID_17
|
||||
JNIEnv_GetStaticMethodID_18
|
||||
JNIEnv_GetStaticMethodID_19
|
||||
JNIEnv_GetStaticMethodID_2
|
||||
JNIEnv_GetStaticMethodID_20
|
||||
JNIEnv_GetStaticMethodID_21
|
||||
JNIEnv_GetStaticMethodID_22
|
||||
JNIEnv_GetStaticMethodID_3
|
||||
JNIEnv_GetStaticMethodID_4
|
||||
JNIEnv_GetStaticMethodID_5
|
||||
JNIEnv_GetStaticMethodID_6
|
||||
JNIEnv_GetStaticMethodID_7
|
||||
JNIEnv_GetStaticMethodID_8
|
||||
JNIEnv_GetStaticMethodID_9
|
||||
JNIEnv_FindClass_1
|
||||
JNIEnv_FindClass_2
|
||||
JNIEnv_FindClass_3
|
||||
JNIEnv_FindClass_4
|
||||
JNIEnv_FindClass_5
|
||||
JNIEnv_FindClass_6
|
||||
JNIEnv_FindClass_7
|
||||
JNIEnv_FindClass_8
|
||||
JNIEnv_GetSuperclass_1
|
||||
JNIEnv_GetSuperclass_2
|
||||
JNIEnv_GetSuperclass_3
|
||||
JNIEnv_GetSuperclass_4
|
||||
JNIEnv_IsAssignableFrom_1
|
||||
JNIEnv_IsAssignableFrom_2
|
||||
JNIEnv_IsAssignableFrom_3
|
||||
JNIEnv_IsAssignableFrom_4
|
||||
JNIEnv_IsAssignableFrom_5
|
||||
JNIEnv_ExceptionClear_1
|
||||
JNIEnv_ExceptionClear_2
|
||||
JNIEnv_ExceptionDescribe_1
|
||||
JNIEnv_ExceptionDescribe_2
|
||||
JNIEnv_ExceptionOccured_1
|
||||
JNIEnv_ExceptionOccured_2
|
||||
JNIEnv_FatalError_1
|
||||
JNIEnv_ThrowNew_1
|
||||
JNIEnv_ThrowNew_2
|
||||
JNIEnv_ThrowNew_3
|
||||
JNIEnv_ThrowNew_4
|
||||
JNIEnv_ThrowNew_5
|
||||
JNIEnv_Throw_1
|
||||
JNIEnv_Throw_2
|
||||
JNIEnv_DeleteGlobalRef_1
|
||||
JNIEnv_DeleteGlobalRef_2
|
||||
JNIEnv_DeleteLocalRef_1
|
||||
JNIEnv_DeleteLocalRef_2
|
||||
JNIEnv_NewGlobalRef_1
|
||||
JNIEnv_NewGlobalRef_2
|
||||
JNIEnv_GetJavaVM_1
|
||||
JNIEnv_GetJavaVM_2
|
||||
JNIEnv_AllocObject_1
|
||||
JNIEnv_AllocObject_2
|
||||
JNIEnv_AllocObject_3
|
||||
JNIEnv_AllocObject_4
|
||||
JNIEnv_GetObjectClass_1
|
||||
JNIEnv_GetObjectClass_2
|
||||
JNIEnv_IsInstanceOf_1
|
||||
JNIEnv_IsInstanceOf_2
|
||||
JNIEnv_IsInstanceOf_3
|
||||
JNIEnv_IsInstanceOf_4
|
||||
JNIEnv_IsInstanceOf_5
|
||||
JNIEnv_IsSameObject_1
|
||||
JNIEnv_IsSameObject_2
|
||||
JNIEnv_IsSameObject_3
|
||||
JNIEnv_IsSameObject_4
|
||||
JNIEnv_NewObjectA_1
|
||||
JNIEnv_NewObjectA_2
|
||||
JNIEnv_NewObjectA_3
|
||||
JNIEnv_NewObjectA_4
|
||||
JNIEnv_NewObjectA_5
|
||||
JNIEnv_NewObjectA_6
|
||||
JNIEnv_NewObjectA_7
|
||||
JNIEnv_NewObjectA_8
|
||||
JNIEnv_NewObjectA_9
|
||||
JNIEnv_NewObject_1
|
||||
JNIEnv_NewObject_2
|
||||
JNIEnv_NewObject_3
|
||||
JNIEnv_NewObject_4
|
||||
JNIEnv_NewObject_5
|
||||
JNIEnv_NewObject_6
|
||||
JNIEnv_NewObject_7
|
||||
JNIEnv_NewObject_8
|
||||
JNIEnv_NewObject_9
|
||||
JNIEnv_GetStringChars_1
|
||||
JNIEnv_GetStringChars_2
|
||||
JNIEnv_GetStringChars_3
|
||||
JNIEnv_GetStringChars_4
|
||||
JNIEnv_GetStringLength_1
|
||||
JNIEnv_GetStringLength_2
|
||||
JNIEnv_GetStringLength_3
|
||||
JNIEnv_GetStringUTFChars_1
|
||||
JNIEnv_GetStringUTFChars_2
|
||||
JNIEnv_GetStringUTFChars_3
|
||||
JNIEnv_GetStringUTFChars_4
|
||||
JNIEnv_GetStringUTFLength_1
|
||||
JNIEnv_GetStringUTFLength_2
|
||||
JNIEnv_GetStringUTFLength_3
|
||||
JNIEnv_NewStringUTF_1
|
||||
JNIEnv_NewStringUTF_2
|
||||
JNIEnv_NewStringUTF_3
|
||||
JNIEnv_NewString_1
|
||||
JNIEnv_NewString_2
|
||||
JNIEnv_NewString_3
|
||||
JNIEnv_ReleaseStringChars_1
|
||||
JNIEnv_ReleaseStringChars_2
|
||||
JNIEnv_ReleaseStringUTFChars_1
|
||||
JNIEnv_ReleaseStringUTFChars_2
|
||||
JNIEnv_GetVersion_1
|
|
@ -1,558 +0,0 @@
|
|||
#
|
||||
####################### Proxy JNI tests #######################
|
||||
#
|
||||
JNIEnv_AllocObject_2
|
||||
JNIEnv_AllocObject_3
|
||||
JNIEnv_AllocObject_4
|
||||
JNIEnv_CallBooleanMethod_1
|
||||
JNIEnv_CallBooleanMethod_2
|
||||
JNIEnv_CallBooleanMethod_3
|
||||
JNIEnv_CallBooleanMethod_4
|
||||
JNIEnv_CallByteMethod_1
|
||||
JNIEnv_CallByteMethod_2
|
||||
JNIEnv_CallByteMethod_3
|
||||
JNIEnv_CallByteMethod_4
|
||||
JNIEnv_CallCharMethod_1
|
||||
JNIEnv_CallCharMethod_2
|
||||
JNIEnv_CallDoubleMethod_1
|
||||
JNIEnv_CallDoubleMethod_2
|
||||
JNIEnv_CallDoubleMethod_3
|
||||
JNIEnv_CallDoubleMethod_4
|
||||
JNIEnv_CallFloatMethod_1
|
||||
JNIEnv_CallFloatMethod_2
|
||||
JNIEnv_CallFloatMethod_3
|
||||
JNIEnv_CallFloatMethod_4
|
||||
JNIEnv_CallIntMethod_10
|
||||
JNIEnv_CallIntMethod_11
|
||||
JNIEnv_CallIntMethod_13
|
||||
JNIEnv_CallIntMethod_14
|
||||
JNIEnv_CallIntMethod_15
|
||||
JNIEnv_CallIntMethod_16
|
||||
JNIEnv_CallIntMethod_17
|
||||
JNIEnv_CallIntMethod_18
|
||||
JNIEnv_CallIntMethod_19
|
||||
JNIEnv_CallIntMethod_1
|
||||
JNIEnv_CallIntMethod_2
|
||||
JNIEnv_CallIntMethod_3
|
||||
JNIEnv_CallIntMethod_4
|
||||
JNIEnv_CallIntMethod_5
|
||||
JNIEnv_CallIntMethod_6
|
||||
JNIEnv_CallIntMethod_7
|
||||
JNIEnv_CallIntMethod_8
|
||||
JNIEnv_CallIntMethod_9
|
||||
JNIEnv_CallLongMethod_1
|
||||
JNIEnv_CallLongMethod_2
|
||||
JNIEnv_CallLongMethod_3
|
||||
JNIEnv_CallLongMethod_4
|
||||
JNIEnv_CallNonvirtualBooleanMethod_1
|
||||
JNIEnv_CallNonvirtualBooleanMethod_2
|
||||
JNIEnv_CallNonvirtualBooleanMethod_3
|
||||
JNIEnv_CallNonvirtualBooleanMethod_4
|
||||
JNIEnv_CallNonvirtualByteMethod_1
|
||||
JNIEnv_CallNonvirtualByteMethod_2
|
||||
JNIEnv_CallNonvirtualByteMethod_3
|
||||
JNIEnv_CallNonvirtualByteMethod_4
|
||||
JNIEnv_CallNonvirtualCharMethod_1
|
||||
JNIEnv_CallNonvirtualCharMethod_2
|
||||
JNIEnv_CallNonvirtualCharMethod_3
|
||||
JNIEnv_CallNonvirtualCharMethod_4
|
||||
JNIEnv_CallNonvirtualDoubleMethod_1
|
||||
JNIEnv_CallNonvirtualDoubleMethod_2
|
||||
JNIEnv_CallNonvirtualDoubleMethod_3
|
||||
JNIEnv_CallNonvirtualDoubleMethod_4
|
||||
JNIEnv_CallNonvirtualFloatMethod_1
|
||||
JNIEnv_CallNonvirtualFloatMethod_2
|
||||
JNIEnv_CallNonvirtualFloatMethod_3
|
||||
JNIEnv_CallNonvirtualFloatMethod_4
|
||||
JNIEnv_CallNonvirtualIntMethod_10
|
||||
JNIEnv_CallNonvirtualIntMethod_11
|
||||
JNIEnv_CallNonvirtualIntMethod_12
|
||||
JNIEnv_CallNonvirtualIntMethod_13
|
||||
JNIEnv_CallNonvirtualIntMethod_14
|
||||
JNIEnv_CallNonvirtualIntMethod_15
|
||||
JNIEnv_CallNonvirtualIntMethod_16
|
||||
JNIEnv_CallNonvirtualIntMethod_18
|
||||
JNIEnv_CallNonvirtualIntMethod_19
|
||||
JNIEnv_CallNonvirtualIntMethod_1
|
||||
JNIEnv_CallNonvirtualIntMethod_21
|
||||
JNIEnv_CallNonvirtualIntMethod_22
|
||||
JNIEnv_CallNonvirtualIntMethod_23
|
||||
JNIEnv_CallNonvirtualIntMethod_24
|
||||
JNIEnv_CallNonvirtualIntMethod_25
|
||||
JNIEnv_CallNonvirtualIntMethod_26
|
||||
JNIEnv_CallNonvirtualIntMethod_27
|
||||
JNIEnv_CallNonvirtualIntMethod_28
|
||||
JNIEnv_CallNonvirtualIntMethod_29
|
||||
JNIEnv_CallNonvirtualIntMethod_2
|
||||
JNIEnv_CallNonvirtualIntMethod_30
|
||||
JNIEnv_CallNonvirtualIntMethod_31
|
||||
JNIEnv_CallNonvirtualIntMethod_32
|
||||
JNIEnv_CallNonvirtualIntMethod_33
|
||||
JNIEnv_CallNonvirtualIntMethod_34
|
||||
JNIEnv_CallNonvirtualIntMethod_4
|
||||
JNIEnv_CallNonvirtualIntMethod_5
|
||||
JNIEnv_CallNonvirtualIntMethod_7
|
||||
JNIEnv_CallNonvirtualIntMethod_8
|
||||
JNIEnv_CallNonvirtualIntMethod_9
|
||||
JNIEnv_CallNonvirtualLongMethod_1
|
||||
JNIEnv_CallNonvirtualLongMethod_2
|
||||
JNIEnv_CallNonvirtualLongMethod_3
|
||||
JNIEnv_CallNonvirtualLongMethod_4
|
||||
JNIEnv_CallNonvirtualObjectMethod_1
|
||||
JNIEnv_CallNonvirtualObjectMethod_2
|
||||
JNIEnv_CallNonvirtualObjectMethod_3
|
||||
JNIEnv_CallNonvirtualObjectMethod_4
|
||||
JNIEnv_CallNonvirtualObjectMethod_5
|
||||
JNIEnv_CallNonvirtualObjectMethod_6
|
||||
JNIEnv_CallNonvirtualObjectMethod_7
|
||||
JNIEnv_CallNonvirtualShortMethod_1
|
||||
JNIEnv_CallNonvirtualShortMethod_2
|
||||
JNIEnv_CallNonvirtualShortMethod_3
|
||||
JNIEnv_CallNonvirtualShortMethod_4
|
||||
JNIEnv_CallNonvirtualVoidMethod_1
|
||||
JNIEnv_CallNonvirtualVoidMethod_2
|
||||
JNIEnv_CallObjectMethod_1
|
||||
JNIEnv_CallObjectMethod_2
|
||||
JNIEnv_CallObjectMethod_3
|
||||
JNIEnv_CallObjectMethod_4
|
||||
JNIEnv_CallObjectMethod_5
|
||||
JNIEnv_CallObjectMethod_6
|
||||
JNIEnv_CallObjectMethod_7
|
||||
JNIEnv_CallShortMethod_1
|
||||
JNIEnv_CallShortMethod_2
|
||||
JNIEnv_CallShortMethod_3
|
||||
JNIEnv_CallShortMethod_4
|
||||
JNIEnv_CallStaticBooleanMethod_1
|
||||
JNIEnv_CallStaticBooleanMethod_2
|
||||
JNIEnv_CallStaticBooleanMethod_3
|
||||
JNIEnv_CallStaticBooleanMethod_4
|
||||
JNIEnv_CallStaticByteMethod_1
|
||||
JNIEnv_CallStaticByteMethod_2
|
||||
JNIEnv_CallStaticByteMethod_3
|
||||
JNIEnv_CallStaticByteMethod_4
|
||||
JNIEnv_CallStaticCharMethod_1
|
||||
JNIEnv_CallStaticCharMethod_2
|
||||
JNIEnv_CallStaticCharMethod_3
|
||||
JNIEnv_CallStaticCharMethod_4
|
||||
JNIEnv_CallStaticDoubleMethod_1
|
||||
JNIEnv_CallStaticDoubleMethod_2
|
||||
JNIEnv_CallStaticDoubleMethod_3
|
||||
JNIEnv_CallStaticDoubleMethod_4
|
||||
JNIEnv_CallStaticFloatMethod_1
|
||||
JNIEnv_CallStaticFloatMethod_2
|
||||
JNIEnv_CallStaticFloatMethod_3
|
||||
JNIEnv_CallStaticFloatMethod_4
|
||||
JNIEnv_CallStaticIntMethod_10
|
||||
JNIEnv_CallStaticIntMethod_11
|
||||
JNIEnv_CallStaticIntMethod_12
|
||||
JNIEnv_CallStaticIntMethod_13
|
||||
JNIEnv_CallStaticIntMethod_14
|
||||
JNIEnv_CallStaticIntMethod_15
|
||||
JNIEnv_CallStaticIntMethod_16
|
||||
JNIEnv_CallStaticIntMethod_18
|
||||
JNIEnv_CallStaticIntMethod_19
|
||||
JNIEnv_CallStaticIntMethod_1
|
||||
JNIEnv_CallStaticIntMethod_20
|
||||
JNIEnv_CallStaticIntMethod_21
|
||||
JNIEnv_CallStaticIntMethod_2
|
||||
JNIEnv_CallStaticIntMethod_4
|
||||
JNIEnv_CallStaticIntMethod_5
|
||||
JNIEnv_CallStaticIntMethod_7
|
||||
JNIEnv_CallStaticIntMethod_8
|
||||
JNIEnv_CallStaticIntMethod_9
|
||||
JNIEnv_CallStaticLongMethod_1
|
||||
JNIEnv_CallStaticLongMethod_2
|
||||
JNIEnv_CallStaticLongMethod_3
|
||||
JNIEnv_CallStaticLongMethod_4
|
||||
JNIEnv_CallStaticObjectMethod_1
|
||||
JNIEnv_CallStaticObjectMethod_2
|
||||
JNIEnv_CallStaticObjectMethod_3
|
||||
JNIEnv_CallStaticObjectMethod_4
|
||||
JNIEnv_CallStaticObjectMethod_5
|
||||
JNIEnv_CallStaticObjectMethod_6
|
||||
JNIEnv_CallStaticObjectMethod_7
|
||||
JNIEnv_CallStaticShortMethod_1
|
||||
JNIEnv_CallStaticShortMethod_2
|
||||
JNIEnv_CallStaticShortMethod_3
|
||||
JNIEnv_CallStaticShortMethod_4
|
||||
JNIEnv_CallStaticVoidMethod_1
|
||||
JNIEnv_CallStaticVoidMethod_2
|
||||
JNIEnv_CallVoidMethod_1
|
||||
JNIEnv_CallVoidMethod_2
|
||||
JNIEnv_DeleteGlobalRef_1
|
||||
JNIEnv_DeleteGlobalRef_2
|
||||
JNIEnv_DeleteLocalRef_1
|
||||
JNIEnv_DeleteLocalRef_2
|
||||
JNIEnv_ExceptionClear_1
|
||||
JNIEnv_ExceptionClear_2
|
||||
JNIEnv_ExceptionDescribe_1
|
||||
JNIEnv_ExceptionDescribe_2
|
||||
JNIEnv_FindClass_2
|
||||
JNIEnv_FindClass_3
|
||||
JNIEnv_FindClass_4
|
||||
JNIEnv_FindClass_5
|
||||
JNIEnv_FindClass_6
|
||||
JNIEnv_FindClass_7
|
||||
JNIEnv_FindClass_8
|
||||
JNIEnv_GetArrayLength_1
|
||||
JNIEnv_GetArrayLength_3
|
||||
JNIEnv_GetBooleanArrayElements_2
|
||||
JNIEnv_GetBooleanArrayElements_3
|
||||
JNIEnv_GetBooleanArrayRegion_1
|
||||
JNIEnv_GetBooleanField_1
|
||||
JNIEnv_GetBooleanField_5
|
||||
JNIEnv_GetBooleanField_6
|
||||
JNIEnv_GetByteArrayElements_2
|
||||
JNIEnv_GetByteArrayElements_3
|
||||
JNIEnv_GetByteArrayRegion_1
|
||||
JNIEnv_GetByteField_1
|
||||
JNIEnv_GetByteField_5
|
||||
JNIEnv_GetByteField_6
|
||||
JNIEnv_GetCharArrayElements_2
|
||||
JNIEnv_GetCharArrayElements_3
|
||||
JNIEnv_GetCharArrayRegion_1
|
||||
JNIEnv_GetCharField_1
|
||||
JNIEnv_GetCharField_5
|
||||
JNIEnv_GetDoubleArrayElements_2
|
||||
JNIEnv_GetDoubleArrayElements_3
|
||||
JNIEnv_GetDoubleArrayRegion_1
|
||||
JNIEnv_GetDoubleField_1
|
||||
JNIEnv_GetDoubleField_5
|
||||
JNIEnv_GetDoubleField_6
|
||||
JNIEnv_GetFieldID_10
|
||||
JNIEnv_GetFieldID_11
|
||||
JNIEnv_GetFieldID_12
|
||||
JNIEnv_GetFieldID_13
|
||||
JNIEnv_GetFieldID_15
|
||||
JNIEnv_GetFieldID_16
|
||||
JNIEnv_GetFieldID_17
|
||||
JNIEnv_GetFieldID_18
|
||||
JNIEnv_GetFieldID_19
|
||||
JNIEnv_GetFieldID_20
|
||||
JNIEnv_GetFieldID_3
|
||||
JNIEnv_GetFieldID_4
|
||||
JNIEnv_GetFieldID_6
|
||||
JNIEnv_GetFieldID_7
|
||||
JNIEnv_GetFieldID_8
|
||||
JNIEnv_GetFieldID_9
|
||||
JNIEnv_GetFloatArrayElements_2
|
||||
JNIEnv_GetFloatArrayElements_3
|
||||
JNIEnv_GetFloatArrayRegion_1
|
||||
JNIEnv_GetFloatField_1
|
||||
JNIEnv_GetFloatField_5
|
||||
JNIEnv_GetFloatField_6
|
||||
JNIEnv_GetIntArrayElements_2
|
||||
JNIEnv_GetIntArrayElements_3
|
||||
JNIEnv_GetIntArrayRegion_1
|
||||
JNIEnv_GetIntArrayRegion_2
|
||||
JNIEnv_GetIntArrayRegion_4
|
||||
JNIEnv_GetIntField_1
|
||||
JNIEnv_GetIntField_5
|
||||
JNIEnv_GetIntField_6
|
||||
JNIEnv_GetIntField_7
|
||||
JNIEnv_GetJavaVM_2
|
||||
JNIEnv_GetLongArrayElements_2
|
||||
JNIEnv_GetLongArrayElements_3
|
||||
JNIEnv_GetLongArrayRegion_1
|
||||
JNIEnv_GetLongField_1
|
||||
JNIEnv_GetLongField_5
|
||||
JNIEnv_GetLongField_6
|
||||
JNIEnv_GetMethodID_10
|
||||
JNIEnv_GetMethodID_11
|
||||
JNIEnv_GetMethodID_12
|
||||
JNIEnv_GetMethodID_13
|
||||
JNIEnv_GetMethodID_15
|
||||
JNIEnv_GetMethodID_16
|
||||
JNIEnv_GetMethodID_17
|
||||
JNIEnv_GetMethodID_18
|
||||
JNIEnv_GetMethodID_19
|
||||
JNIEnv_GetMethodID_20
|
||||
JNIEnv_GetMethodID_21
|
||||
JNIEnv_GetMethodID_22
|
||||
JNIEnv_GetMethodID_23
|
||||
JNIEnv_GetMethodID_24
|
||||
JNIEnv_GetMethodID_25
|
||||
JNIEnv_GetMethodID_26
|
||||
JNIEnv_GetMethodID_27
|
||||
JNIEnv_GetMethodID_28
|
||||
JNIEnv_GetMethodID_29
|
||||
JNIEnv_GetMethodID_30
|
||||
JNIEnv_GetMethodID_31
|
||||
JNIEnv_GetMethodID_32
|
||||
JNIEnv_GetMethodID_33
|
||||
JNIEnv_GetMethodID_34
|
||||
JNIEnv_GetMethodID_35
|
||||
JNIEnv_GetMethodID_36
|
||||
JNIEnv_GetMethodID_37
|
||||
JNIEnv_GetMethodID_38
|
||||
JNIEnv_GetMethodID_39
|
||||
JNIEnv_GetMethodID_5
|
||||
JNIEnv_GetMethodID_6
|
||||
JNIEnv_GetMethodID_7
|
||||
JNIEnv_GetMethodID_8
|
||||
JNIEnv_GetMethodID_9
|
||||
JNIEnv_GetObjectArrayElement_1
|
||||
JNIEnv_GetObjectArrayElement_2
|
||||
JNIEnv_GetObjectArrayElement_4
|
||||
JNIEnv_GetObjectArrayElement_5
|
||||
JNIEnv_GetObjectClass_1
|
||||
JNIEnv_GetObjectField_1
|
||||
JNIEnv_GetShortArrayElements_2
|
||||
JNIEnv_GetShortArrayElements_3
|
||||
JNIEnv_GetShortArrayRegion_1
|
||||
JNIEnv_GetShortField_1
|
||||
JNIEnv_GetShortField_5
|
||||
JNIEnv_GetShortField_6
|
||||
JNIEnv_GetStaticBooleanField_1
|
||||
JNIEnv_GetStaticBooleanField_5
|
||||
JNIEnv_GetStaticBooleanField_6
|
||||
JNIEnv_GetStaticByteField_1
|
||||
JNIEnv_GetStaticByteField_5
|
||||
JNIEnv_GetStaticByteField_6
|
||||
JNIEnv_GetStaticCharField_1
|
||||
JNIEnv_GetStaticCharField_5
|
||||
JNIEnv_GetStaticDoubleField_1
|
||||
JNIEnv_GetStaticDoubleField_5
|
||||
JNIEnv_GetStaticFieldID_10
|
||||
JNIEnv_GetStaticFieldID_11
|
||||
JNIEnv_GetStaticFieldID_12
|
||||
JNIEnv_GetStaticFieldID_13
|
||||
JNIEnv_GetStaticFieldID_14
|
||||
JNIEnv_GetStaticFieldID_15
|
||||
JNIEnv_GetStaticFieldID_16
|
||||
JNIEnv_GetStaticFieldID_17
|
||||
JNIEnv_GetStaticFieldID_18
|
||||
JNIEnv_GetStaticFieldID_19
|
||||
JNIEnv_GetStaticFieldID_20
|
||||
JNIEnv_GetStaticFieldID_4
|
||||
JNIEnv_GetStaticFieldID_5
|
||||
JNIEnv_GetStaticFieldID_6
|
||||
JNIEnv_GetStaticFieldID_7
|
||||
JNIEnv_GetStaticFieldID_8
|
||||
JNIEnv_GetStaticFieldID_9
|
||||
JNIEnv_GetStaticFloatField_1
|
||||
JNIEnv_GetStaticFloatField_5
|
||||
JNIEnv_GetStaticFloatField_6
|
||||
JNIEnv_GetStaticIntField_1
|
||||
JNIEnv_GetStaticIntField_5
|
||||
JNIEnv_GetStaticIntField_6
|
||||
JNIEnv_GetStaticLongField_1
|
||||
JNIEnv_GetStaticLongField_5
|
||||
JNIEnv_GetStaticLongField_6
|
||||
JNIEnv_GetStaticMethodID_10
|
||||
JNIEnv_GetStaticMethodID_11
|
||||
JNIEnv_GetStaticMethodID_12
|
||||
JNIEnv_GetStaticMethodID_13
|
||||
JNIEnv_GetStaticMethodID_14
|
||||
JNIEnv_GetStaticMethodID_16
|
||||
JNIEnv_GetStaticMethodID_17
|
||||
JNIEnv_GetStaticMethodID_18
|
||||
JNIEnv_GetStaticMethodID_19
|
||||
JNIEnv_GetStaticMethodID_20
|
||||
JNIEnv_GetStaticMethodID_21
|
||||
JNIEnv_GetStaticMethodID_6
|
||||
JNIEnv_GetStaticMethodID_7
|
||||
JNIEnv_GetStaticMethodID_8
|
||||
JNIEnv_GetStaticMethodID_9
|
||||
JNIEnv_GetStaticObjectField_1
|
||||
JNIEnv_GetStaticObjectField_5
|
||||
JNIEnv_GetStaticShortField_1
|
||||
JNIEnv_GetStaticShortField_5
|
||||
JNIEnv_GetStaticShortField_6
|
||||
JNIEnv_GetStringChars_4
|
||||
JNIEnv_GetStringLength_2
|
||||
JNIEnv_GetStringLength_3
|
||||
JNIEnv_GetStringUTFChars_1
|
||||
JNIEnv_GetStringUTFChars_3
|
||||
JNIEnv_GetStringUTFChars_4
|
||||
JNIEnv_GetStringUTFLength_1
|
||||
JNIEnv_GetStringUTFLength_2
|
||||
JNIEnv_GetSuperclass_2
|
||||
JNIEnv_GetSuperclass_3
|
||||
JNIEnv_GetSuperclass_4
|
||||
JNIEnv_GetVersion_1
|
||||
JNIEnv_IsAssignableFrom_1
|
||||
JNIEnv_IsAssignableFrom_3
|
||||
JNIEnv_IsAssignableFrom_4
|
||||
JNIEnv_IsAssignableFrom_5
|
||||
JNIEnv_IsInstanceOf_1
|
||||
JNIEnv_IsInstanceOf_2
|
||||
JNIEnv_IsInstanceOf_3
|
||||
JNIEnv_IsInstanceOf_4
|
||||
JNIEnv_IsInstanceOf_5
|
||||
JNIEnv_IsSameObject_1
|
||||
JNIEnv_IsSameObject_2
|
||||
JNIEnv_IsSameObject_3
|
||||
JNIEnv_IsSameObject_4
|
||||
JNIEnv_NewBooleanArray_1
|
||||
JNIEnv_NewBooleanArray_2
|
||||
JNIEnv_NewBooleanArray_3
|
||||
JNIEnv_NewByteArray_1
|
||||
JNIEnv_NewByteArray_2
|
||||
JNIEnv_NewByteArray_3
|
||||
JNIEnv_NewCharArray_1
|
||||
JNIEnv_NewCharArray_2
|
||||
JNIEnv_NewCharArray_3
|
||||
JNIEnv_NewDoubleArray_1
|
||||
JNIEnv_NewDoubleArray_2
|
||||
JNIEnv_NewDoubleArray_3
|
||||
JNIEnv_NewFloatArray_1
|
||||
JNIEnv_NewFloatArray_2
|
||||
JNIEnv_NewFloatArray_3
|
||||
JNIEnv_NewGlobalRef_1
|
||||
JNIEnv_NewGlobalRef_2
|
||||
JNIEnv_NewIntArray_1
|
||||
JNIEnv_NewIntArray_2
|
||||
JNIEnv_NewIntArray_3
|
||||
JNIEnv_NewLongArray_1
|
||||
JNIEnv_NewLongArray_2
|
||||
JNIEnv_NewLongArray_3
|
||||
JNIEnv_NewObjectA_1
|
||||
JNIEnv_NewObjectA_3
|
||||
JNIEnv_NewObjectA_4
|
||||
JNIEnv_NewObjectA_9
|
||||
JNIEnv_NewObjectArray_1
|
||||
JNIEnv_NewObjectArray_3
|
||||
JNIEnv_NewObjectArray_4
|
||||
JNIEnv_NewObjectArray_5
|
||||
JNIEnv_NewObject_1
|
||||
JNIEnv_NewObject_3
|
||||
JNIEnv_NewObject_4
|
||||
JNIEnv_NewObject_9
|
||||
JNIEnv_NewShortArray_1
|
||||
JNIEnv_NewShortArray_2
|
||||
JNIEnv_NewShortArray_3
|
||||
JNIEnv_NewStringUTF_1
|
||||
JNIEnv_NewStringUTF_2
|
||||
JNIEnv_NewStringUTF_3
|
||||
JNIEnv_NewString_2
|
||||
JNIEnv_NewString_3
|
||||
JNIEnv_ReleaseBooleanArrayElements_1
|
||||
JNIEnv_ReleaseBooleanArrayElements_2
|
||||
JNIEnv_ReleaseBooleanArrayElements_3
|
||||
JNIEnv_ReleaseByteArrayElements_1
|
||||
JNIEnv_ReleaseByteArrayElements_2
|
||||
JNIEnv_ReleaseByteArrayElements_3
|
||||
JNIEnv_ReleaseCharArrayElements_1
|
||||
JNIEnv_ReleaseCharArrayElements_2
|
||||
JNIEnv_ReleaseCharArrayElements_3
|
||||
JNIEnv_ReleaseDoubleArrayElements_1
|
||||
JNIEnv_ReleaseDoubleArrayElements_2
|
||||
JNIEnv_ReleaseDoubleArrayElements_3
|
||||
JNIEnv_ReleaseFloatArrayElements_1
|
||||
JNIEnv_ReleaseFloatArrayElements_2
|
||||
JNIEnv_ReleaseFloatArrayElements_3
|
||||
JNIEnv_ReleaseIntArrayElements_1
|
||||
JNIEnv_ReleaseIntArrayElements_2
|
||||
JNIEnv_ReleaseIntArrayElements_3
|
||||
JNIEnv_ReleaseLongArrayElements_1
|
||||
JNIEnv_ReleaseLongArrayElements_2
|
||||
JNIEnv_ReleaseLongArrayElements_3
|
||||
JNIEnv_ReleaseShortArrayElements_1
|
||||
JNIEnv_ReleaseShortArrayElements_2
|
||||
JNIEnv_ReleaseShortArrayElements_3
|
||||
JNIEnv_ReleaseStringChars_2
|
||||
JNIEnv_ReleaseStringUTFChars_1
|
||||
JNIEnv_ReleaseStringUTFChars_2
|
||||
JNIEnv_SetBooleanArrayRegion_1
|
||||
JNIEnv_SetBooleanField_1
|
||||
JNIEnv_SetBooleanField_5
|
||||
JNIEnv_SetBooleanField_6
|
||||
JNIEnv_SetBooleanField_7
|
||||
JNIEnv_SetByteArrayRegion_1
|
||||
JNIEnv_SetByteField_1
|
||||
JNIEnv_SetByteField_5
|
||||
JNIEnv_SetByteField_6
|
||||
JNIEnv_SetCharArrayRegion_1
|
||||
JNIEnv_SetCharField_1
|
||||
JNIEnv_SetCharField_5
|
||||
JNIEnv_SetCharField_6
|
||||
JNIEnv_SetDoubleArrayRegion_1
|
||||
JNIEnv_SetDoubleField_1
|
||||
JNIEnv_SetDoubleField_5
|
||||
JNIEnv_SetDoubleField_6
|
||||
JNIEnv_SetFloatArrayRegion_1
|
||||
JNIEnv_SetFloatField_1
|
||||
JNIEnv_SetFloatField_5
|
||||
JNIEnv_SetIntArrayRegion_1
|
||||
JNIEnv_SetIntArrayRegion_2
|
||||
JNIEnv_SetIntArrayRegion_4
|
||||
JNIEnv_SetIntField_1
|
||||
JNIEnv_SetIntField_5
|
||||
JNIEnv_SetLongArrayRegion_1
|
||||
JNIEnv_SetLongField_1
|
||||
JNIEnv_SetLongField_5
|
||||
JNIEnv_SetObjectArrayElement_1
|
||||
JNIEnv_SetObjectArrayElement_2
|
||||
JNIEnv_SetObjectArrayElement_3
|
||||
JNIEnv_SetObjectArrayElement_4
|
||||
JNIEnv_SetObjectArrayElement_5
|
||||
JNIEnv_SetObjectField_5
|
||||
JNIEnv_SetShortArrayRegion_1
|
||||
JNIEnv_SetShortField_1
|
||||
JNIEnv_SetShortField_5
|
||||
JNIEnv_SetStaticBooleanField_1
|
||||
JNIEnv_SetStaticBooleanField_5
|
||||
JNIEnv_SetStaticBooleanField_6
|
||||
JNIEnv_SetStaticByteField_1
|
||||
JNIEnv_SetStaticByteField_5
|
||||
JNIEnv_SetStaticByteField_6
|
||||
JNIEnv_SetStaticCharField_1
|
||||
JNIEnv_SetStaticCharField_5
|
||||
JNIEnv_SetStaticCharField_6
|
||||
JNIEnv_SetStaticDoubleField_1
|
||||
JNIEnv_SetStaticDoubleField_5
|
||||
JNIEnv_SetStaticDoubleField_6
|
||||
JNIEnv_SetStaticFloatField_1
|
||||
JNIEnv_SetStaticFloatField_5
|
||||
JNIEnv_SetStaticIntField_1
|
||||
JNIEnv_SetStaticIntField_5
|
||||
JNIEnv_SetStaticLongField_1
|
||||
JNIEnv_SetStaticLongField_5
|
||||
JNIEnv_SetStaticObjectField_1
|
||||
JNIEnv_SetStaticObjectField_5
|
||||
JNIEnv_SetStaticShortField_1
|
||||
JNIEnv_SetStaticShortField_5
|
||||
JNIEnv_ThrowNew_1
|
||||
JNIEnv_ThrowNew_2
|
||||
JNIEnv_ThrowNew_3
|
||||
JNIEnv_ThrowNew_4
|
||||
#
|
||||
####################### JVM Manager tests #######################
|
||||
#
|
||||
JVMManager_CreateProxyJNI_1
|
||||
JVMManager_CreateProxyJNI_4
|
||||
JVMManager_GetProxyJNI_2
|
||||
JVMManager_GetProxyJNI_3
|
||||
JVMManager_ShowJavaConsole_1
|
||||
JVMManager_ShowJavaConsole_2
|
||||
#
|
||||
####################### Live Connect Manager tests ##############
|
||||
#
|
||||
LCM_IsLiveConnectEnabled_2
|
||||
LCM_WrapJavaObject_1
|
||||
#
|
||||
####################### Thread Manager tests ####################
|
||||
#
|
||||
ThreadManager_CreateThread_4
|
||||
ThreadManager_EnterMonitor_4
|
||||
ThreadManager_ExitMonitor_1
|
||||
ThreadManager_ExitMonitor_3
|
||||
ThreadManager_ExitMonitor_4
|
||||
ThreadManager_GetCurrentThread_1
|
||||
ThreadManager_NotifyAll_3
|
||||
ThreadManager_NotifyAll_4
|
||||
ThreadManager_Notify_1
|
||||
ThreadManager_Notify_3
|
||||
ThreadManager_Notify_4
|
||||
ThreadManager_PostEvent_2
|
||||
ThreadManager_PostEvent_3
|
||||
ThreadManager_PostEvent_5
|
||||
ThreadManager_PostEvent_6
|
||||
ThreadManager_PostEvent_7
|
||||
ThreadManager_Sleep_1
|
||||
ThreadManager_Sleep_2
|
||||
ThreadManager_Wait_1
|
||||
ThreadManager_Wait_2
|
||||
ThreadManager_Wait_3
|
||||
ThreadManager_Wait_4
|
|
@ -1,740 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
# Created By: Raju Pallath
|
||||
# Creation Date: Aug 2nd 1999
|
||||
#
|
||||
# Ported by: Konstantin S. Ermakov
|
||||
# Ported date: Aug 24th 1999
|
||||
#
|
||||
# This script is used to invoke all test case for OJI API
|
||||
# through apprunner and to recored their results
|
||||
#
|
||||
#
|
||||
|
||||
# Attach Perl Libraries
|
||||
###################################################################
|
||||
use POSIX ":sys_wait_h"; #used by waitpid
|
||||
use Cwd;
|
||||
use File::Copy;
|
||||
#use Win32::Process;
|
||||
#use IO::Handle;
|
||||
###################################################################
|
||||
|
||||
|
||||
########################
|
||||
# #
|
||||
# User's settings #
|
||||
# #
|
||||
########################
|
||||
|
||||
#Mozilla's executable
|
||||
$MOZILLA_EXECUTABLE="mozilla-bin";
|
||||
if ($^O =~ /Win32/i) {
|
||||
$MOZILLA_EXECUTABLE="mozilla.exe";
|
||||
}
|
||||
|
||||
#sometimes we need to specify additional parameters for mozilla
|
||||
$ADDITIONAL_PARAMETERS="-P default";
|
||||
|
||||
# time in seconds after which the apprunner has to be killed.
|
||||
# by default the apprunner will be up for so much time regardless of
|
||||
# whether over or not. User can either decrease it or increase it.
|
||||
#
|
||||
$DELAY_FACTOR = 50;
|
||||
|
||||
$FULL_TEST_LIST="OJITestsList.lst";
|
||||
|
||||
$TEST_RESULTS="OJITestResults.txt";
|
||||
|
||||
$TEST_DESCRIPTIONS="../OJIAPITestsDescr.html";
|
||||
$TARGET_WINDOW="Test Descriptions";
|
||||
|
||||
$curdir = cwd();
|
||||
$DEFAULT_TEST_URL="file:///$curdir";
|
||||
|
||||
# time period in seconds of periodically checking: is the apprunner still alive
|
||||
$DELAY_OF_CYCLE = 1;
|
||||
|
||||
|
||||
##############################################################
|
||||
##############################################################
|
||||
##############################################################
|
||||
|
||||
|
||||
$DOCROOT = $ENV{"TEST_URL"} ? $ENV{"TEST_URL"} : $DEFAULT_TEST_URL;
|
||||
|
||||
# delimiter for logfile
|
||||
$delimiter="###################################################\n";
|
||||
$nosort=0;
|
||||
|
||||
|
||||
##################################################################
|
||||
# Usage
|
||||
##################################################################
|
||||
sub usage() {
|
||||
|
||||
print "\n";
|
||||
print "##################################################################\n";
|
||||
print " perl autorun.pl [ -help ] [ -genhtml [ ALL/PASS/FAILED/<test_type> ] ] [ -compare [ <output_file> <file1> <file2> ] ] [ -t <test_case> ]\n";
|
||||
print "\n";
|
||||
print " -help This message.\n\n";
|
||||
print " -compare <output_file> <file1> <file2> \n";
|
||||
print " Compares two test result files and generates the diff files\n";
|
||||
print " <output_file> the resulting diff files in text (.txt)\n";
|
||||
print " and HTML (.html) formats\n";
|
||||
print " <file1(2)> files to be compared (optional parameters)\n";
|
||||
print " should contain test results in text format\n";
|
||||
print " (generated by autorun.pl as BWTest.txt);\n";
|
||||
print " if ommited the default values are used: \n";
|
||||
print " <file1> => log/BWTest.txt \n";
|
||||
print " <file2> => log/BWTest.txt.bak \n\n";
|
||||
print " -genhtml <option> Generates report in HTML format (without tests execution).\n";
|
||||
print " ALL Generates report for all executed tests. \n";
|
||||
print " PASS Generates report for passed tests\n";
|
||||
print " FAILED Generates report for failed tests\n";
|
||||
print " <test_type> Generates report for the specific <test_type>\n";
|
||||
print " <test_type> = JNIEnv/LCM/ThreadManager/JVMManager\n";
|
||||
print " If specified all other parameters are ignored\n\n";
|
||||
print " -t <test case> Executes the specified <test_case>.\n";
|
||||
print " test_case example: JVMManager_CreateProxyJNI_1\n";
|
||||
print "\n";
|
||||
print "##################################################################\n";
|
||||
print "\n";
|
||||
|
||||
}
|
||||
|
||||
##################################################################
|
||||
# Title display
|
||||
##################################################################
|
||||
sub title() {
|
||||
|
||||
print "\n";
|
||||
print "################################################\n";
|
||||
print " Automated Execution of OJI API TestSuite\n";
|
||||
print "################################################\n";
|
||||
print "\n\n";
|
||||
|
||||
}
|
||||
|
||||
##################################################################
|
||||
#
|
||||
# check which tests to run. XML/HTML or both
|
||||
#
|
||||
##################################################################
|
||||
sub checkRun() {
|
||||
$runtype = "0";
|
||||
while( true ) {
|
||||
print "Run 1) HTML Test suite.\n";
|
||||
print " 2) XML Test suite.\n";
|
||||
print " 3) BOTH HTML and XML.\n";
|
||||
print "Enter choice (1-3) :\n";
|
||||
$runtype = getc;
|
||||
|
||||
if(( $runtype ne "1" ) &&
|
||||
( $runtype ne "2" ) &&
|
||||
( $runtype ne "3" ) )
|
||||
{
|
||||
print "Invaid choice. Range is from 1-3...\n";
|
||||
print "\n";
|
||||
next;
|
||||
} else {
|
||||
last;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Append table entries to Output HTML File
|
||||
#
|
||||
#########################################################################
|
||||
sub appendEntries() {
|
||||
print LOGHTML "<tr><td></td><td></td></tr><td></td>\n";
|
||||
print LOGHTML "<tr><td></td><td></td></tr><td></td>\n";
|
||||
print LOGHTML "<tr bgcolor=\"#FF6666\"><td>Test Status (XML)</td><td>Result</td><td>Comment</td></tr>\n";
|
||||
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct Output HTML file Header
|
||||
#
|
||||
#########################################################################
|
||||
sub constructHTMLHeader() {
|
||||
print LOGHTML "<html><head><title>\n";
|
||||
print LOGHTML "OJI API Test Status\n";
|
||||
print LOGHTML "</title></head><body bgcolor=\"white\">\n";
|
||||
print LOGHTML "<center><h1>\n";
|
||||
print LOGHTML "OJI API Automated TestRun Results\n";
|
||||
$date = localtime;
|
||||
print LOGHTML "</h1><h2>", $date;
|
||||
print LOGHTML "</h2></center>\n";
|
||||
print LOGHTML "<hr noshade>";
|
||||
print LOGHTML "<table bgcolor=\"lightgreen\" border=1 cellpadding=10>\n";
|
||||
print LOGHTML "<tr bgcolor=\"lightblue\">\n";
|
||||
print LOGHTML "<td>Test Case</td>\n";
|
||||
print LOGHTML "<td>Result</td>\n";
|
||||
print LOGHTML "<td>Comment</td></tr>\n";
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct Output HTML file indicating status of each run
|
||||
#
|
||||
#########################################################################
|
||||
sub constructHTMLBody() {
|
||||
open( MYLOG, $LOGTXT ) || print("WARNING: can't open log file $LOGTXT: $!\n");
|
||||
@all_lines = <MYLOG>;
|
||||
close( MYLOG );
|
||||
|
||||
my $line;
|
||||
my $f_cnt = 0;
|
||||
my $p_cnt = 0;
|
||||
foreach $line ( ($nosort) ? @all_lines : sort @all_lines ) {
|
||||
# avoid linebreaks
|
||||
chop $line;
|
||||
if ($line eq "" || $line =~ /^\0*$/ || $line =~ /^\s*$/) {
|
||||
next;
|
||||
}
|
||||
$comment = "---";
|
||||
# assuming that all lines are kind'of 'aaa=bbb'
|
||||
($class, $status) = split /\: /, $line;
|
||||
if ($status =~ /(.*?) \((.*?)\)$/) {
|
||||
$status = $1;
|
||||
$comment = $2 ? $2 : "---";
|
||||
}
|
||||
if ($status =~ /FAIL/) {
|
||||
$status = "<font color=\"red\">".$status;
|
||||
$status = $status."<\/font>";
|
||||
$f_cnt++;
|
||||
} elsif ($status =~ /PASS/) {
|
||||
$p_cnt++;
|
||||
}
|
||||
if ($genparam eq "ALL" || ($genparam ne "" && $line =~ /$genparam/)) {
|
||||
print LOGHTML "<tr><td><a target=\"$TARGET_WINDOW\" href=\"$TEST_DESCRIPTIONS#$class\">",$class,"</a></td><td>",$status,"</td><td>",$comment,"</td></tr>\n";
|
||||
}
|
||||
}
|
||||
if ($p_cnt+$f_cnt) {
|
||||
$pp = sprintf "%.2f", $p_cnt/($p_cnt+$f_cnt)*100;
|
||||
$pf = sprintf "%.2f", $f_cnt/($p_cnt+$f_cnt)*100;
|
||||
}
|
||||
print LOGHTML "<tr><td colspan=3>Total: $p_cnt($pp\%) tests passed and $f_cnt($pf\%) tests failed.</td></tr>\n";
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct Output HTML file Footer
|
||||
#
|
||||
#########################################################################
|
||||
sub constructHTMLFooter() {
|
||||
print LOGHTML "</table></body></html>\n";
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct Output HTML file indicating status of each run
|
||||
#
|
||||
#########################################################################
|
||||
sub constructHTML() {
|
||||
constructHTMLHeader();
|
||||
constructHTMLBody();
|
||||
constructHTMLFooter();
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct LogFile Header. The Log file is always appended with entries
|
||||
#
|
||||
#########################################################################
|
||||
sub constructLogHeader() {
|
||||
print LOGFILE "\n";
|
||||
print LOGFILE "\n";
|
||||
print LOGFILE $delimiter;
|
||||
$date = localtime;
|
||||
print LOGFILE "Logging Test Run on $date ...\n";
|
||||
print LOGFILE $delimiter;
|
||||
print LOGFILE "\n";
|
||||
|
||||
print "All Log Entries are maintained in LogFile $LOGFILE\n";
|
||||
print "\n";
|
||||
}
|
||||
|
||||
#########################################################################
|
||||
#
|
||||
# Construct LogFile Footer.
|
||||
#
|
||||
#########################################################################
|
||||
sub constructLogFooter() {
|
||||
print "\n";
|
||||
print LOGFILE $delimiter;
|
||||
$date = localtime;
|
||||
print LOGFILE "End of Logging Test $date ...\n";
|
||||
print LOGFILE $delimiter;
|
||||
print "\n";
|
||||
}
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Construct Log String
|
||||
#
|
||||
########################################################################
|
||||
sub constructLogString {
|
||||
my $logstring = shift(@_);
|
||||
print LOGFILE "$logstring\n";
|
||||
print "$logstring\n";
|
||||
|
||||
}
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# Safely append to file : open, append, close.
|
||||
#
|
||||
########################################################################
|
||||
sub safeAppend {
|
||||
my $file = shift(@_);
|
||||
my $line = shift(@_);
|
||||
open (FILE, ">>$file") or die ("Cann't open $file");
|
||||
print FILE $line;
|
||||
close FILE;
|
||||
}
|
||||
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# Running Test case under Win32
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
sub RunTestCaseWin {
|
||||
# win32 specific values
|
||||
# STILL_ALIVE is a constant defined in winbase.h and indicates what
|
||||
# process still alive
|
||||
$STILL_ALIVE = 0x103;
|
||||
do 'Win32/Process.pm';
|
||||
|
||||
open(SAVEOUT, ">&STDOUT" );
|
||||
open(SAVEERR, ">&STDERR" );
|
||||
open(STDOUT, ">$testlog" ) || die "Can't redirect stdout";
|
||||
open(STDERR, ">&STDOUT" ) || die "Can't dup STDOUT";
|
||||
select STDERR; $|=1; select STDOUT; $|=1;
|
||||
Win32::Process::Create($ProcessObj,
|
||||
"$mozhome/$MOZILLA_EXECUTABLE",
|
||||
"$mozhome/$MOZILLA_EXECUTABLE $ADDITIONAL_PARAMETERS $DOCFILE",
|
||||
1,
|
||||
NORMAL_PRIORITY_CLASS,
|
||||
"$mozhome" ) || die "cann't start apprunner";
|
||||
close(STDOUT);
|
||||
close(STDERR);
|
||||
open(STDOUT, ">&SAVEOUT");
|
||||
open(STDERR, ">&SAVEERR");
|
||||
|
||||
$crashed = 0;
|
||||
$cnt = 0;
|
||||
while (true) {
|
||||
sleep($DELAY_OF_CYCLE);
|
||||
system("$curdir\\killer.exe");
|
||||
$ProcessObj->GetExitCode($exit_code);
|
||||
if ($exit_code != $STILL_ALIVE ) {
|
||||
$crashed = 1;
|
||||
$logstr = "Test FAILED...";
|
||||
constructLogString "$logstr";
|
||||
$logstr = "Mozilla terminated with exit code $exit_code.";
|
||||
constructLogString "$logstr";
|
||||
$logstr = "Check ErrorLog File $testlog ";
|
||||
constructLogString "$logstr";
|
||||
constructLogString "========================================\n";
|
||||
safeAppend $LOGTXT, "$testcase: FAILED (Mozilla crashed with exitcode $exit_code)\n";
|
||||
last;
|
||||
}
|
||||
$cnt += $DELAY_OF_CYCLE;
|
||||
if ( $cnt >= $DELAY_FACTOR ) {
|
||||
$ProcessObj->Kill(0);
|
||||
last;
|
||||
}
|
||||
} # while with sleep
|
||||
$crashed;
|
||||
}
|
||||
|
||||
|
||||
#######################################################################
|
||||
#
|
||||
# Running Test case under Unix
|
||||
#
|
||||
#######################################################################
|
||||
|
||||
sub RunTestCaseUnix {
|
||||
$exit_code = 0;
|
||||
$pid = 0;
|
||||
open(SAVEOUT, ">&STDOUT" );
|
||||
open(SAVEERR, ">&STDERR" );
|
||||
open(STDOUT, ">$testlog" ) || die "Can't redirect stdout";
|
||||
open(STDERR, ">&STDOUT" ) || die "Can't dup STDOUT";
|
||||
select STDERR; $|=1; select STDOUT; $|=1;
|
||||
if (!($pid = fork())) {
|
||||
#this is a child process - we should start mozilla in it
|
||||
# the second exec to overide any shell parsing
|
||||
# If argument list had any metacharacter (like ~) then it is pass
|
||||
# to /bin/sh -c as a separate process. To avoid that we have the
|
||||
# second exec.
|
||||
exec(" exec $mozhome/$MOZILLA_EXECUTABLE $ADDITIONAL_PARAMETERS $DOCFILE");
|
||||
close(STDOUT);
|
||||
close(STDERR);
|
||||
open(STDOUT, ">&SAVEOUT");
|
||||
open(STDERR, ">&SAVEERR");
|
||||
die "ERROR: Can't start mozilla: $!\n";
|
||||
}
|
||||
#this is a parent process - we should control mozilla execution from it
|
||||
close(STDOUT);
|
||||
close(STDERR);
|
||||
open(STDOUT, ">&SAVEOUT");
|
||||
open(STDERR, ">&SAVEERR");
|
||||
$cnt = 0;
|
||||
$crashed = 0;
|
||||
print("Mozilla's pid: $pid\n");
|
||||
while (true) {
|
||||
sleep($DELAY_OF_CYCLE);
|
||||
#print "Try call waitpid ...\n";
|
||||
if (waitpid($pid,&WNOHANG)) {
|
||||
$crashed = 1;
|
||||
$logstr = "Test FAILED...";
|
||||
constructLogString "$logstr";
|
||||
$logstr = "Mozilla terminated by signal ".($? & 127)." with exitcode ".($? >> 8);
|
||||
constructLogString "$logstr";
|
||||
$logstr = "Check ErrorLog File $testlog ";
|
||||
constructLogString "$logstr";
|
||||
constructLogString "========================================\n";
|
||||
safeAppend $LOGTXT, "$testcase: FAILED (Mozilla terminated by signal ".($? & 127)." with exitcode ".($? >> 8).")\n";
|
||||
last;
|
||||
}
|
||||
$cnt += $DELAY_OF_CYCLE;
|
||||
if ( $cnt >= $DELAY_FACTOR ) {
|
||||
kill(9, $pid);
|
||||
#now we should take exitcode to avoid zombie appearance
|
||||
sleep(1);
|
||||
waitpid($pid,&WNOHANG);
|
||||
last;
|
||||
}
|
||||
} # while with sleep
|
||||
$crashed;
|
||||
}
|
||||
|
||||
|
||||
sub compareResults {
|
||||
$out_fn = shift;
|
||||
$fn1 = shift;
|
||||
$fn2 = shift;
|
||||
if (!defined($out_fn)) {
|
||||
$out_fn = "$curdir/log/diff";
|
||||
}
|
||||
if (!defined($fn2)) {
|
||||
$fn2 = "$curdir/log/BWTest.txt.bak";
|
||||
}
|
||||
if (!defined($fn1)) {
|
||||
$fn1 = "$curdir/log/BWTest.txt";
|
||||
}
|
||||
|
||||
(-f $fn1 && open(IN1, "<$fn1")) || die "Can't open file $fn1: $!\n";
|
||||
(-f $fn2 && open(IN2, "<$fn2")) || die "Can't open file $fn2: $!\n";
|
||||
open(OUT_TXT, ">$out_fn".".txt") || die "Can't open output file $out_fn.txt: $!\n";
|
||||
$genparam = "ALL";
|
||||
$nosort = 1;
|
||||
|
||||
my %res1;
|
||||
my %line1;
|
||||
my %res2;
|
||||
my $ln = 0;
|
||||
my $j=0;
|
||||
|
||||
while($line = <IN1>) {
|
||||
$ln ++;
|
||||
chop $line;
|
||||
if ($line =~ /(.*): (.*)/) {
|
||||
$res1{$1} = $2;
|
||||
$line1{$1} = $line;
|
||||
} else {
|
||||
die "File format error in file $fn1, line $ln: $line\n";
|
||||
}
|
||||
}
|
||||
$ln = 0;
|
||||
while($line = <IN2>) {
|
||||
$ln ++;
|
||||
chop $line;
|
||||
if ($line =~ /(.*): (.*)/) {
|
||||
if (defined($res1{$1})) {
|
||||
if ($res1{$1} ne $2) {
|
||||
print OUT_TXT $line1{$1}."\n";
|
||||
print OUT_TXT $line."\n";
|
||||
}
|
||||
delete $res1{$1};
|
||||
} else {
|
||||
$new_in_2[$j++] = $line;
|
||||
#file2 contain extra tests (that file1 doesn't contain)
|
||||
#file1 can also contain extra tests (that file2 doen't contain)
|
||||
#do we need to report about it ?
|
||||
}
|
||||
} else {
|
||||
die "File format error in file $fn2, line $ln: $line\n";
|
||||
}
|
||||
}
|
||||
|
||||
#report about extra tests in file1
|
||||
@remained_keys = keys %res1;
|
||||
if ($#remained_keys >= 0) {
|
||||
print OUT_TXT " : EXTRA (TESTS IN $fn1:)\n";
|
||||
foreach $key (@remained_keys) {
|
||||
print OUT_TXT "$line1{$key}\n";
|
||||
}
|
||||
}
|
||||
#report about extra tests in file2
|
||||
if ($j > 0) {
|
||||
print OUT_TXT " : EXTRA (TESTS IN $fn2:)\n";
|
||||
for($i=0; $i<$j; $i++) {
|
||||
print OUT_TXT "$new_in_2[$i]\n";
|
||||
}
|
||||
}
|
||||
if (<OUT_TXT>) {
|
||||
close OUT_TXT;
|
||||
$LOGTXT = "$out_fn".".txt";
|
||||
open(LOGHTML, ">$out_fn.html") || die "Can't open output file $out_fn.html: $!\n";
|
||||
constructHTML();
|
||||
close LOGHTML;
|
||||
} else {
|
||||
close OUT_TXT;
|
||||
print "Results are equivalent !\n";
|
||||
}
|
||||
close IN1;
|
||||
close IN2;
|
||||
}
|
||||
|
||||
##################################################################
|
||||
# main
|
||||
##################################################################
|
||||
|
||||
title;
|
||||
|
||||
$curdir = cwd();
|
||||
|
||||
# Prepare file names
|
||||
$x=`mkdir -p $curdir/log`;
|
||||
$LOGFILE = "$curdir/log/BWTestRun.log";
|
||||
$LOGTXT = "$curdir/log/BWTest.txt";
|
||||
$LOGHTML = "$curdir/log/BWTest.html";
|
||||
|
||||
|
||||
# process command-line parameters
|
||||
# and check for valid usage
|
||||
|
||||
$testparam = "";
|
||||
$genparam = "";
|
||||
|
||||
if ($ARGV[0] =~ /help/ || $ARGV[0] =~ /\?/) {
|
||||
usage();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ($ARGV[0] =~ "-genhtml") {
|
||||
$genparam = $ARGV[1];
|
||||
if ($genparam eq "") {
|
||||
$genparam = "ALL";
|
||||
}
|
||||
|
||||
open( LOGHTML, ">$LOGHTML" ) or die("Can't open HTML file $LOGHTML ($!)...\n");
|
||||
print("Generating result HTML page ...\n");
|
||||
constructHTML();
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ($ARGV[0] eq "-compare") {
|
||||
compareResults($ARGV[1], $ARGV[2], $ARGV[3]);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ( $#ARGV >= 0 ) {
|
||||
if ( $ARGV[0] != "-t" ) {
|
||||
usage;
|
||||
die;
|
||||
} elsif ($ARGV[1] ne "") {
|
||||
$testparam = $ARGV[1];
|
||||
} else {
|
||||
usage();
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
## Default behaviour is to generate the HTML file
|
||||
if ($genparam eq "") {
|
||||
$genparam = "ALL";
|
||||
}
|
||||
|
||||
$mozhome = $ENV{"MOZILLA_FIVE_HOME"};
|
||||
|
||||
if ( $mozhome eq "" ) {
|
||||
print "MOZILLA_FIVE_HOME is not set. Please set it and rerun this script....\n";
|
||||
die;
|
||||
}
|
||||
|
||||
if ( ! -f "$mozhome/$MOZILLA_EXECUTABLE" ) {
|
||||
print "Could not find $MOZILLA_EXECUTABLE in MOZILLA_FIVE_HOME.\n";
|
||||
print "Please check your setting...\n";
|
||||
die;
|
||||
}
|
||||
|
||||
# Here must come a piece of code, that determinates
|
||||
# apprunner instance, removes core, but there's no
|
||||
# core under win32
|
||||
|
||||
# Backup existing .lst file
|
||||
if ( ! -f "$curdir/$FULL_TEST_LIST" ) {
|
||||
print "Can't find list of OJI API tests to be run.";
|
||||
die;
|
||||
}
|
||||
|
||||
|
||||
$id=$$;
|
||||
|
||||
|
||||
# check if output text file of previous run exists.
|
||||
# if so, then save it as .bak
|
||||
#
|
||||
if ( -f "$LOGTXT" ) {
|
||||
$newfile="$LOGTXT.bak";
|
||||
rename $LOGTXT, $newfile;
|
||||
}
|
||||
|
||||
# check if output html file of previous run exists.
|
||||
# if so, then save it as .bak
|
||||
#
|
||||
if ( -f "$LOGHTML" ) {
|
||||
$newfile="$LOGHTML.bak";
|
||||
rename $LOGHTML, $newfile;
|
||||
}
|
||||
|
||||
# construct DOCFILE
|
||||
$DOCFILE = "$DOCROOT/test.html";
|
||||
$runcnt = 1;
|
||||
$filename = "$curdir/$FULL_TEST_LIST";
|
||||
|
||||
# Prepare log streams
|
||||
|
||||
open( LOGHTML, ">$LOGHTML" ) or die("Can't open HTML file...\n");
|
||||
open( LOGFILE, ">>$LOGFILE" ) or die("Can't open LOG file...\n");
|
||||
select LOGFILE; $| = 1; select STDOUT;
|
||||
|
||||
|
||||
|
||||
|
||||
constructLogHeader();
|
||||
|
||||
$LST_OUT = "$mozhome/OJITests.lst";
|
||||
|
||||
$currcnt = 0;
|
||||
while (true) {
|
||||
open( file, $filename ) or die("Can't open $filename...\n");
|
||||
while( $line = <file> ) {
|
||||
chop $line;
|
||||
if ( $testparam ne "" ) {
|
||||
$testcase = $testparam;
|
||||
} else {
|
||||
$testcase = $line;
|
||||
}
|
||||
|
||||
if ( $testcase eq "" || $testcase =~ /^\s*#/ ) {
|
||||
next;
|
||||
}
|
||||
|
||||
open(LST_OUT, ">$LST_OUT") or die ("Can't open LST_OUT file...\n");
|
||||
print LST_OUT $testcase;
|
||||
close(LST_OUT);
|
||||
|
||||
chdir( $mozhome );
|
||||
#deleting old result ...
|
||||
unlink("$mozhome/$TEST_RESULTS");
|
||||
$logstr="Running TestCase $testcase....";
|
||||
constructLogString "========================================";
|
||||
constructLogString "$logstr";
|
||||
|
||||
($nom) = ($testcase =~ /([^\.]*)$/);
|
||||
$testlog = "$curdir/log/$nom.$id.log";
|
||||
|
||||
if ($^O =~ /Win32/i) {
|
||||
$crashed = RunTestCaseWin();
|
||||
} else {
|
||||
$crashed = RunTestCaseUnix();
|
||||
}
|
||||
|
||||
if (!$crashed) {
|
||||
if (!open (TEST_RES, "$mozhome/$TEST_RESULTS") || ($logstr = <TEST_RES>) =~ /^\s*$/) {
|
||||
$logstr = "$testcase: FAILED (undefined result)";
|
||||
}
|
||||
close TEST_RES;
|
||||
chomp $logstr;
|
||||
constructLogString "$logstr";
|
||||
constructLogString "========================================\n";
|
||||
safeAppend "$LOGTXT", "$logstr\n";
|
||||
}
|
||||
|
||||
( $testparam eq "" ) || last;
|
||||
|
||||
} # while ( $line
|
||||
|
||||
( ++$currcnt < $runcnt ) || last;
|
||||
|
||||
} # while(true)
|
||||
constructLogFooter;
|
||||
|
||||
constructHTML();
|
||||
|
||||
if (-f "$curdir/log/BWTest.txt.bak") {
|
||||
print("Old result file found => generating diff files: \nTXT:->$curdir/log/diff.txt \nHTML:->$curdir/log/diff.html");
|
||||
compareResults();
|
||||
}
|
||||
|
||||
chdir($curdir);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Двоичные данные
modules/oji/tests/script/killer.exe
Двоичные данные
modules/oji/tests/script/killer.exe
Двоичный файл не отображается.
|
@ -1,18 +0,0 @@
|
|||
<html>
|
||||
<head>
|
||||
<script>
|
||||
function startOJITests() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
// var OJITestLoader = Components.classes["component://netscape/oji/test/api/loader"].createInstance();
|
||||
var OJITestLoader = Components.classes['@mozilla.org/oji/test/api/loader;1'].createInstance();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h2 align="center">OJI API tests starting page. </h2>
|
||||
Results of tests execution could be found on the console and
|
||||
in the appropriate output files.
|
||||
<script>
|
||||
startOJITests();
|
||||
</script>
|
||||
</body>
|
|
@ -1,49 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
use POSIX ":sys_wait_h";
|
||||
|
||||
if (!($pid = fork())) {
|
||||
system("sleep 10");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
print "Child pid: $pid\n";
|
||||
do {
|
||||
sleep(1);
|
||||
$ret = waitpid($pid, &WNOHANG);
|
||||
print("WaitPid: $ret\n");
|
||||
}while ($ret >= 0);
|
|
@ -1,93 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JVMManagerTests.h"
|
||||
|
||||
#include "CreateProxyJNI.h"
|
||||
/*CreateProxyJNI*/
|
||||
|
||||
//1-st parameter is NULL
|
||||
JM_OJIAPITest(JVMManager_CreateProxyJNI_1) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
|
||||
nsresult rc = jvmMgr->CreateProxyJNI(nsnull, &jniEnv);
|
||||
if (NS_SUCCEEDED(rc) && jniEnv)
|
||||
return TestResult::PASS("First paramenter CAN be NULL.");
|
||||
return TestResult::FAIL("CreateProxyJNI", rc);
|
||||
}
|
||||
|
||||
//both parameters are NULL
|
||||
JM_OJIAPITest(JVMManager_CreateProxyJNI_2) {
|
||||
GET_JM_FOR_TEST
|
||||
//JNIEnv **jniEnv = nsnull;
|
||||
|
||||
nsresult rc = jvmMgr->CreateProxyJNI(nsnull, nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return TestResult::PASS("Method should fail because no space is allocated for the result pointer.");
|
||||
return TestResult::FAIL("CreateProxyJNI", rc);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//2-nd parameter is NULL
|
||||
JM_OJIAPITest(JVMManager_CreateProxyJNI_3) {
|
||||
GET_JM_FOR_TEST
|
||||
//JNIEnv **jniEnv = nsnull;
|
||||
nsISecureEnv *secureEnv = new nsDummySecureEnv();
|
||||
|
||||
nsresult rc = jvmMgr->CreateProxyJNI(secureEnv, nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return TestResult::PASS("Method should fail because no space is allocated for the result pointer.");
|
||||
return TestResult::FAIL("CreateProxyJNI", rc);
|
||||
}
|
||||
|
||||
|
||||
//both parameters !=NULL
|
||||
JM_OJIAPITest(JVMManager_CreateProxyJNI_4) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
nsISecureEnv *secureEnv = new nsDummySecureEnv();
|
||||
|
||||
nsresult rc = jvmMgr->CreateProxyJNI(secureEnv, &jniEnv);
|
||||
if (NS_SUCCEEDED(rc) && jniEnv)
|
||||
return TestResult::PASS("Method should work OK.");
|
||||
return TestResult::FAIL("CreateProxyJNI", rc);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,270 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include <nsISecureEnv.h>
|
||||
|
||||
class nsDummySecureEnv : public nsISecureEnv {
|
||||
public:
|
||||
nsDummySecureEnv() {}
|
||||
|
||||
//nsISupports interface
|
||||
|
||||
NS_METHOD QueryInterface(const nsIID & uuid, void * *result) { return NS_OK; }
|
||||
|
||||
NS_METHOD_(nsrefcnt) AddRef(void) { return NS_OK; }
|
||||
|
||||
NS_METHOD_(nsrefcnt) Release(void) { return NS_OK; }
|
||||
|
||||
|
||||
//nsISecureEnv interface
|
||||
|
||||
NS_METHOD NewObject(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jobject* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD CallMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD CallNonvirtualMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD SetField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jobject obj,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD CallStaticMethod(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jmethodID methodID,
|
||||
/*[in]*/ jvalue *args,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[out]*/ jvalue* result,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
|
||||
NS_METHOD SetStaticField(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jfieldID fieldID,
|
||||
/*[in]*/ jvalue val,
|
||||
/*[in]*/ nsISecurityContext* ctx = NULL) { return NS_OK; }
|
||||
|
||||
|
||||
NS_METHOD GetVersion(/*[out]*/ jint* version) { return NS_OK; }
|
||||
|
||||
NS_METHOD DefineClass(/*[in]*/ const char* name,
|
||||
/*[in]*/ jobject loader,
|
||||
/*[in]*/ const jbyte *buf,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jclass* clazz) { return NS_OK; }
|
||||
|
||||
NS_METHOD FindClass(/*[in]*/ const char* name,
|
||||
/*[out]*/ jclass* clazz) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetSuperclass(/*[in]*/ jclass sub,
|
||||
/*[out]*/ jclass* super) { return NS_OK; }
|
||||
|
||||
NS_METHOD IsAssignableFrom(/*[in]*/ jclass sub,
|
||||
/*[in]*/ jclass super,
|
||||
/*[out]*/ jboolean* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD Throw(/*[in]*/ jthrowable obj,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ThrowNew(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char *msg,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ExceptionOccurred(/*[out]*/ jthrowable* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ExceptionDescribe(void) { return NS_OK; }
|
||||
|
||||
NS_METHOD ExceptionClear(void) { return NS_OK; }
|
||||
|
||||
NS_METHOD FatalError(/*[in]*/ const char* msg) { return NS_OK; }
|
||||
|
||||
NS_METHOD NewGlobalRef(/*[in]*/ jobject lobj,
|
||||
/*[out]*/ jobject* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD DeleteGlobalRef(/*[in]*/ jobject gref) { return NS_OK; }
|
||||
|
||||
NS_METHOD DeleteLocalRef(/*[in]*/ jobject obj) { return NS_OK; }
|
||||
|
||||
NS_METHOD IsSameObject(/*[in]*/ jobject obj1,
|
||||
/*[in]*/ jobject obj2,
|
||||
/*[out]*/ jboolean* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD AllocObject(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jobject* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetObjectClass(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jclass* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD IsInstanceOf(/*[in]*/ jobject obj,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jboolean* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStaticMethodID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jmethodID* id) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStaticFieldID(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const char* name,
|
||||
/*[in]*/ const char* sig,
|
||||
/*[out]*/ jfieldID* id) { return NS_OK; }
|
||||
|
||||
NS_METHOD NewString(/*[in]*/ const jchar* unicode,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jstring* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStringLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const jchar** result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ReleaseStringChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const jchar *chars) { return NS_OK; }
|
||||
|
||||
NS_METHOD NewStringUTF(/*[in]*/ const char *utf,
|
||||
/*[out]*/ jstring* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStringUTFLength(/*[in]*/ jstring str,
|
||||
/*[out]*/ jsize* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ const char** result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ReleaseStringUTFChars(/*[in]*/ jstring str,
|
||||
/*[in]*/ const char *chars) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetArrayLength(/*[in]*/ jarray array,
|
||||
/*[out]*/ jsize* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD NewObjectArray(/*[in]*/ jsize len,
|
||||
/*[in]*/ jclass clazz,
|
||||
/*[in]*/ jobject init,
|
||||
/*[out]*/ jobjectArray* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[out]*/ jobject* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD SetObjectArrayElement(/*[in]*/ jobjectArray array,
|
||||
/*[in]*/ jsize index,
|
||||
/*[in]*/ jobject val) { return NS_OK; }
|
||||
|
||||
NS_METHOD NewArray(/*[in]*/ jni_type element_type,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ jarray* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jboolean *isCopy,
|
||||
/*[out]*/ void* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD ReleaseArrayElements(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ void *elems,
|
||||
/*[in]*/ jint mode) { return NS_OK; }
|
||||
|
||||
|
||||
NS_METHOD GetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[out]*/ void* buf) { return NS_OK; }
|
||||
|
||||
NS_METHOD SetArrayRegion(/*[in]*/ jni_type type,
|
||||
/*[in]*/ jarray array,
|
||||
/*[in]*/ jsize start,
|
||||
/*[in]*/ jsize len,
|
||||
/*[in]*/ void* buf) { return NS_OK; }
|
||||
|
||||
NS_METHOD RegisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[in]*/ const JNINativeMethod *methods,
|
||||
/*[in]*/ jint nMethods,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD UnregisterNatives(/*[in]*/ jclass clazz,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD MonitorEnter(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD MonitorExit(/*[in]*/ jobject obj,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
NS_METHOD GetJavaVM(/*[in]*/ JavaVM **vm,
|
||||
/*[out]*/ jint* result) { return NS_OK; }
|
||||
|
||||
};
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JVMManagerTests.h"
|
||||
|
||||
/*GetProxyJNI*/
|
||||
|
||||
JM_OJIAPITest(JVMManager_GetProxyJNI_1) {
|
||||
GET_JM_FOR_TEST
|
||||
nsresult rc = jvmMgr->GetProxyJNI(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return TestResult::PASS("Method should fail because no space is allocated for the result pointer.");
|
||||
return TestResult::FAIL("GetProxyJNI", rc);
|
||||
}
|
||||
|
||||
JM_OJIAPITest(JVMManager_GetProxyJNI_2) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
|
||||
nsresult rc = jvmMgr->GetProxyJNI(&jniEnv);
|
||||
if (NS_SUCCEEDED(rc))
|
||||
return TestResult::PASS("Method should work OK though we didn't call CreateProxyJNI before.");
|
||||
return TestResult::FAIL("GetProxyJNI", rc);
|
||||
|
||||
}
|
||||
|
||||
JM_OJIAPITest(JVMManager_GetProxyJNI_3) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
nsresult rc = jvmMgr->CreateProxyJNI(nsnull, &jniEnv);
|
||||
|
||||
if (NS_SUCCEEDED(rc)) {
|
||||
rc = jvmMgr->GetProxyJNI(&jniEnv);
|
||||
if (NS_SUCCEEDED(rc))
|
||||
return TestResult::PASS("Before calling GetProxyJNI CreateProxyJNI method is called.");
|
||||
return TestResult::FAIL("GetProxyJNI", rc);
|
||||
}
|
||||
return TestResult::FAIL("Can't create ProxyJNI.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JVMManagerTests.h"
|
||||
|
||||
/*IsJavaEnabled*/
|
||||
|
||||
JM_OJIAPITest(JVMManager_IsJavaEnabled_1) {
|
||||
GET_JM_FOR_TEST
|
||||
|
||||
nsresult rc = jvmMgr->IsJavaEnabled(nsnull);
|
||||
if (NS_FAILED(rc))
|
||||
return TestResult::PASS("Method should fail because no space is allocated for the result pointer.");
|
||||
return TestResult::FAIL("GetProxyJNI", rc);
|
||||
|
||||
}
|
||||
|
||||
JM_OJIAPITest(JVMManager_IsJavaEnabled_2) {
|
||||
GET_JM_FOR_TEST
|
||||
PRBool b;
|
||||
|
||||
nsresult rc = jvmMgr->IsJavaEnabled(&b);
|
||||
if (NS_SUCCEEDED(rc) && b == PR_TRUE) {
|
||||
return TestResult::PASS("Should PASS if security.enable_java property is set to true or ommited.");
|
||||
}
|
||||
return TestResult::FAIL("IsJavaEnabled", rc);
|
||||
}
|
||||
|
||||
|
||||
JM_OJIAPITest(JVMManager_IsJavaEnabled_3) {
|
||||
GET_JM_FOR_TEST
|
||||
PRBool b;
|
||||
|
||||
//how can we disable Java ????? -> this test doesn't work
|
||||
nsresult rc = jvmMgr->IsJavaEnabled(&b);
|
||||
if (NS_SUCCEEDED(rc) && b == PR_FALSE) {
|
||||
return TestResult::PASS("Should PASS if security.enable_java property is set to false.");
|
||||
}
|
||||
return TestResult::FAIL("To make this test pass one should delete OJI plugin !");
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include <ojiapitests.h>
|
||||
|
||||
#include <nsIJVMManager.h>
|
||||
|
||||
static NS_DEFINE_IID(kJVMManagerCID, NS_JVMMANAGER_CID);
|
||||
static NS_DEFINE_IID(kIJVMManagerIID, NS_IJVMMANAGER_IID);
|
||||
|
||||
extern nsresult GetJVMManager(nsIJVMManager** jm);
|
||||
|
||||
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
TOP_DIR= ../..
|
||||
|
||||
OBJ_DIR= obj
|
||||
|
||||
CPP=get_jm.cpp \
|
||||
CreateProxyJNI.cpp \
|
||||
GetProxyJNI.cpp \
|
||||
IsJavaEnabled.cpp \
|
||||
ShowJavaConsole.cpp
|
||||
|
||||
OBJS= $(OBJ_DIR)/get_jm.o \
|
||||
$(OBJ_DIR)/CreateProxyJNI.o \
|
||||
$(OBJ_DIR)/GetProxyJNI.o \
|
||||
$(OBJ_DIR)/IsJavaEnabled.o \
|
||||
$(OBJ_DIR)/ShowJavaConsole.o
|
||||
|
||||
DLL= ojiapijmtests
|
||||
|
||||
include ../../build/rules.mk
|
||||
|
||||
all: compile link
|
|
@ -1,57 +0,0 @@
|
|||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Sun Microsystems, Inc.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1999
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
TOP_DIR = ../..
|
||||
|
||||
OBJ_DIR = obj
|
||||
|
||||
CPP = get_jm.cpp \
|
||||
CreateProxyJNI.cpp \
|
||||
GetProxyJNI.cpp \
|
||||
IsJavaEnabled.cpp \
|
||||
ShowJavaConsole.cpp
|
||||
|
||||
OBJS = $(OBJ_DIR)/get_jm.obj \
|
||||
$(OBJ_DIR)/CreateProxyJNI.obj \
|
||||
$(OBJ_DIR)/GetProxyJNI.obj \
|
||||
$(OBJ_DIR)/IsJavaEnabled.obj \
|
||||
$(OBJ_DIR)/ShowJavaConsole.obj
|
||||
|
||||
DLL = ojiapijmtests
|
||||
|
||||
include ../../build/rules.mak
|
||||
|
||||
all: compile link
|
|
@ -1,68 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JVMManagerTests.h"
|
||||
|
||||
|
||||
/*ShowJavaConsole*/
|
||||
|
||||
JM_OJIAPITest(JVMManager_ShowJavaConsole_1) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
|
||||
jvmMgr->CreateProxyJNI(nsnull, &jniEnv);
|
||||
nsresult rc = jvmMgr->ShowJavaConsole();
|
||||
if (NS_SUCCEEDED(rc))
|
||||
return TestResult::PASS("CreateProxyJNI is called before ShowJavaConsole.");
|
||||
return TestResult::FAIL("ShowJavaConsole", rc);
|
||||
|
||||
}
|
||||
|
||||
JM_OJIAPITest(JVMManager_ShowJavaConsole_2) {
|
||||
GET_JM_FOR_TEST
|
||||
JNIEnv *jniEnv;
|
||||
|
||||
nsresult rc = jvmMgr->ShowJavaConsole();
|
||||
if (NS_SUCCEEDED(rc))
|
||||
return TestResult::PASS("Method should PASS nevertheless CreateProxyJNI wasn't call before.");
|
||||
return TestResult::FAIL("ShowJavaConsole", rc);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include <JVMManagerTests.h>
|
||||
#include <nsIServiceManager.h>
|
||||
|
||||
nsresult GetJVMManager(nsIJVMManager** jvmMngr) {
|
||||
*jvmMngr;
|
||||
nsresult rv = CallGetService(kJVMManagerCID, jvmMngr);
|
||||
if (rv != NS_OK || !jvmMngr) {
|
||||
fprintf(stderr, "ERROR: Can't get JVM manager !\n");
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#ifndef AccessingFields_h___
|
||||
#define AccessingFields_h___
|
||||
|
||||
#define IMPLEMENT_GetFieldID_METHOD(class_name, param_name, returnType)\
|
||||
\
|
||||
jclass clazz = env->FindClass(class_name); \
|
||||
if (!clazz) \
|
||||
return TestResult::FAIL("Can't find class !"); \
|
||||
jobject obj = env->AllocObject(clazz); \
|
||||
if (!obj) \
|
||||
return TestResult::FAIL("Can't allocate object !\n"); \
|
||||
jfieldID fieldID = env->GetFieldID(clazz, param_name, returnType ); \
|
||||
printf("fieldID = %d\n", (int)fieldID); \
|
||||
|
||||
#define IMPLEMENT_GetStaticFieldID_METHOD(class_name, param_name, returnType)\
|
||||
\
|
||||
jclass clazz = env->FindClass(class_name); \
|
||||
/*jobject obj = env->AllocObject(clazz); */ \
|
||||
jfieldID fieldID = env->GetStaticFieldID(clazz, param_name, returnType ); \
|
||||
printf("fieldID = %d\n", (int)fieldID); \
|
||||
|
||||
#define IMPLEMENT_GetMethodID_METHOD(class_name, func_name, returnType)\
|
||||
jclass clazz = env->FindClass(class_name);\
|
||||
jobject obj = env->AllocObject(clazz); \
|
||||
jmethodID MethodID = env->GetMethodID(clazz, func_name, returnType);\
|
||||
printf("ID of %s method = %d\n", func_name, (int)MethodID);
|
||||
|
||||
#define IMPLEMENT_GetStaticMethodID_METHOD(class_name, func_name, returnType)\
|
||||
jclass clazz = env->FindClass(class_name);\
|
||||
jobject obj = env->AllocObject(clazz); \
|
||||
jmethodID MethodID = env->GetStaticMethodID(clazz, func_name, returnType);\
|
||||
printf("ID of static %s method = %d\n", func_name, (int)MethodID);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif //AccessingFields_h___
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_1)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
jboolean value = env->GetBooleanField(NULL, fieldID);
|
||||
printf("value = %d\n", (int)value);
|
||||
return TestResult::PASS("GetBooleanField with obj = NULL return correct value - do not crash");
|
||||
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_2)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
jboolean value = env->GetBooleanField(obj, (jfieldID)-100);
|
||||
printf("value = %d\n", (int)value);
|
||||
return TestResult::PASS("GetBooleanField with fieldID = (jfieldID)-100 return correct value - do not crash");
|
||||
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_3)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
jboolean value = env->GetBooleanField(obj, (jfieldID)100);
|
||||
printf("value = %d\n", (int)value);
|
||||
return TestResult::PASS("GetBooleanField with fieldID = (jfieldID)100 return correct value - do not crash");
|
||||
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_4)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
jboolean value = env->GetBooleanField(obj, NULL);
|
||||
printf("value = %d\n", (int)value);
|
||||
return TestResult::PASS("GetBooleanField with fieldID = NULL return correct value - do not crash");
|
||||
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_5)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
env->SetBooleanField(obj, fieldID, JNI_TRUE);
|
||||
jboolean value = env->GetBooleanField(obj, fieldID);
|
||||
printf("value = %d\n", (int)value);
|
||||
if(value == JNI_TRUE){
|
||||
return TestResult::PASS("GetBooleanField with val == JNI_TRUE return correct value");
|
||||
}else{
|
||||
return TestResult::FAIL("GetBooleanField with val == JNI_TRUE return incorrect value");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetBooleanField_6)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_bool", "Z");
|
||||
env->SetBooleanField(obj, fieldID, JNI_FALSE);
|
||||
jboolean value = env->GetBooleanField(obj, fieldID);
|
||||
printf("value = %d\n", (int)value);
|
||||
if(value == JNI_FALSE){
|
||||
return TestResult::PASS("GetBooleanField with val == JNI_FALSE return correct value");
|
||||
}else{
|
||||
return TestResult::FAIL("GetBooleanField with val == JNI_FALSE return incorrect value");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Sun Microsystems, Inc.
|
||||
* Portions created by the Initial Developer are Copyright (C) 1999
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
#include "JNIEnvTests.h"
|
||||
#include "AccessingFields.h"
|
||||
|
||||
JNI_OJIAPITest(JNIEnv_GetByteField_1)
|
||||
{
|
||||
GET_JNI_FOR_TEST
|
||||
|
||||
IMPLEMENT_GetFieldID_METHOD("Test1","name_byte", "B");
|
||||
jbyte value = env->GetByteField(NULL, fieldID);
|
||||
printf("value = %d\n", (byte)value);
|
||||
return TestResult::PASS("GetByteField with obj = NULL return correct value - do not crash");
|
||||
|
||||
}
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче