diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 5 | ||||
-rw-r--r-- | libjava/resolve.cc | 10 |
2 files changed, 15 insertions, 0 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 844b848..e3f2139 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2000-01-26 Tom Tromey <tromey@cygnus.com> + + * resolve.cc (get_ffi_type_from_signature): Handle case where + boolean is an int. + Tue Jan 25 08:51:16 2000 Tom Tromey <tromey@ferrule.cygnus.com> * interpret.cc (run): Don't call println. diff --git a/libjava/resolve.cc b/libjava/resolve.cc index ae8ae90..92d66c2 100644 --- a/libjava/resolve.cc +++ b/libjava/resolve.cc @@ -856,6 +856,16 @@ get_ffi_type_from_signature (unsigned char* ptr) break; case 'Z': + // On some platforms a bool is a byte, on others an int. + if (sizeof (jboolean) == sizeof (jbyte)) + return &ffi_type_sint8; + else + { + JvAssert (sizeof (jbyte) == sizeof (jint)); + return &ffi_type_sint32; + } + break; + case 'B': return &ffi_type_sint8; break; |