libffi limitation causes bad behavior in JNI on Sparc
Tom Tromey
tromey@redhat.com
Fri Jun 15 17:08:00 GMT 2001
>>>>> "Marcus" == Marcus G Daniels <mgd@swarm.org> writes:
Hi Marcus. Sorry this sat unanswered for so long.
Marcus> On Sparc, libffi doesn't handle integer return types of size 8 or 16.
Marcus> This causes problems for JNI calls like CallBooleanMethod because the
Marcus> return value is in the wrong bits of the returned integer.
Marcus> For example, a hack that worked for me was to change ffi_call in
Marcus> libffi/src/sparc/ffi.c to check for FFI_TYPE_UINT8 and FFI_TYPE_SINT8
Marcus> and do a *(unsigned *)rvalue << = 24 in that case.
I'm afraid I don't know enough about libffi or Sparc to comment on
this. Can somebody who does step up here? For instance, is this
suggested fix really a hack, or is it a reasonable approach to fixing
the bug?
Tom
More information about the Java
mailing list