aboutsummaryrefslogtreecommitdiff
path: root/libjava/resolve.cc
diff options
context:
space:
mode:
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;