jni.cc (add_char): Correctly encode non-ascii characters.

* jni.cc (add_char): Correctly encode non-ascii characters.
	(add_char): Define even when INTERPRETER not defined.
	(mangled_name): Likewise.
	(_Jv_GetJNIEnvNewFrame): Likewise.
	(_Jv_LookupJNIMethod): Likewise.

From-SVN: r41010
This commit is contained in:
Tom Tromey 2001-04-02 19:52:39 +00:00 committed by Tom Tromey
parent 23ab86e452
commit 5152512c2e
2 changed files with 13 additions and 5 deletions

View file

@ -1,3 +1,11 @@
2001-03-30 Tom Tromey <tromey@redhat.com>
* jni.cc (add_char): Correctly encode non-ascii characters.
(add_char): Define even when INTERPRETER not defined.
(mangled_name): Likewise.
(_Jv_GetJNIEnvNewFrame): Likewise.
(_Jv_LookupJNIMethod): Likewise.
2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca> 2001-03-23 Kevin B Hendricks <khendricks@ivey.uwo.ca>
* configure.host: Enable interpreter for PPC. * configure.host: Enable interpreter for PPC.

View file

@ -1595,8 +1595,6 @@ _Jv_JNI_UnregisterNatives (JNIEnv *, jclass)
#ifdef INTERPRETER
// Add a character to the buffer, encoding properly. // Add a character to the buffer, encoding properly.
static void static void
add_char (char *buf, jchar c, int *here) add_char (char *buf, jchar c, int *here)
@ -1622,8 +1620,8 @@ add_char (char *buf, jchar c, int *here)
else if (c == '/' || c == '.') else if (c == '/' || c == '.')
buf[(*here)++] = '_'; buf[(*here)++] = '_';
else if ((c >= '0' && c <= '9') else if ((c >= '0' && c <= '9')
|| (c >= 'a' && c <= 'z') || (c >= 'a' && c <= 'z')
|| (c >= 'A' && c <= 'Z')) || (c >= 'A' && c <= 'Z'))
buf[(*here)++] = (char) c; buf[(*here)++] = (char) c;
else else
{ {
@ -1633,7 +1631,7 @@ add_char (char *buf, jchar c, int *here)
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
{ {
int val = c & 0x0f; int val = c & 0x0f;
buf[(*here) + 4 - i] = (val > 10) ? ('a' + val - 10) : ('0' + val); buf[(*here) + 3 - i] = (val > 10) ? ('a' + val - 10) : ('0' + val);
c >>= 4; c >>= 4;
} }
*here += 4; *here += 4;
@ -1753,6 +1751,8 @@ _Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
return function; return function;
} }
#ifdef INTERPRETER
// This function is the stub which is used to turn an ordinary (CNI) // This function is the stub which is used to turn an ordinary (CNI)
// method call into a JNI call. // method call into a JNI call.
void void