From b68dfd9590812041be7f41c9e44877a936bf0b6f Mon Sep 17 00:00:00 2001 From: tromey Date: Wed, 18 Oct 2006 23:17:04 +0000 Subject: * testsuite/libjava.jni/register2.java: New file. * testsuite/libjava.jni/register2.out: New file. * testsuite/libjava.jni/register2.c: New file. * java/lang/natClass.cc (_Jv_GetClassNameUtf8): New function. * java/lang/Class.h (_Jv_GetClassNameUtf8): Declare. * jni.cc (struct NativeMethodCacheEntry): New struct. (nathash): Changed type. (hash): Updated. (nathash_find_slot): Likewise. (nathash_find): Likewise. (natrehash): Likewise. (nathash_add): Likewise. (_Jv_JNI_RegisterNatives): Likewise. (_Jv_LookupJNIMethod): Likewise. Idea from Juerg Lehni git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117867 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/lang/Class.h | 2 ++ libjava/java/lang/natClass.cc | 8 ++++++++ 2 files changed, 10 insertions(+) (limited to 'libjava/java') diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 1638f94e107..a884cd6c59b 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -231,6 +231,7 @@ jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *); jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *); jint JvNumMethods (jclass); jmethodID JvGetFirstMethod (jclass); +_Jv_Utf8Const *_Jv_GetClassNameUtf8 (jclass); #ifdef INTERPRETER // Finds a desired interpreter method in the given class or NULL if not found @@ -474,6 +475,7 @@ private: friend jmethodID (::_Jv_FromReflectedConstructor) (java::lang::reflect::Constructor *); friend jint (::JvNumMethods) (jclass); friend jmethodID (::JvGetFirstMethod) (jclass); + friend _Jv_Utf8Const *::_Jv_GetClassNameUtf8 (jclass); #ifdef INTERPRETER friend _Jv_MethodBase *(::_Jv_FindInterpreterMethod) (jclass klass, jmethodID desired_method); diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index 0682fd6e190..12984291ee1 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -1259,3 +1259,11 @@ _Jv_FindInterpreterMethod (jclass klass, jmethodID desired_method) return NULL; } #endif + +// Return Utf8 name of a class. This function is here for code that +// can't access klass->name directly. +_Jv_Utf8Const* +_Jv_GetClassNameUtf8 (jclass klass) +{ + return klass->name; +} -- cgit v1.2.3