aboutsummaryrefslogtreecommitdiff
path: root/libjava/resolve.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>2000-01-26 23:44:40 +0000
committerTom Tromey <tromey@gcc.gnu.org>2000-01-26 23:44:40 +0000
commit673fdf6d778614d291d139ed4beecea7df6a014d (patch)
tree461b8f76d096da3afccc45b05b8b7d560438451b /libjava/resolve.cc
parentfa76d9e04ebf753eee8e6dffb45430579c31ebf3 (diff)
downloadgcc-673fdf6d778614d291d139ed4beecea7df6a014d.zip
gcc-673fdf6d778614d291d139ed4beecea7df6a014d.tar.gz
gcc-673fdf6d778614d291d139ed4beecea7df6a014d.tar.bz2
resolve.cc (get_ffi_type_from_signature): Handle case where boolean is an int.
* resolve.cc (get_ffi_type_from_signature): Handle case where boolean is an int. From-SVN: r31637
Diffstat (limited to 'libjava/resolve.cc')
-rw-r--r--libjava/resolve.cc10
1 files changed, 10 insertions, 0 deletions
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;