[kaffe] [bug] kaffeh can't handle overloaded native methods

Dalibor Topic robilad@yahoo.com
Fri, 27 Dec 2002 15:00:14 -0800 (PST)


--0-547812573-1041030014=:15648
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

I'm trying to teach kaffeh to handle overloaded native
methods in -jni
mode. Run it on JavahTest.class and compare the result
to
JavahTest.h.jdk13. You'll see that kaffeh declares two
functions with
same name but with different argument lists, which is
illegal in C.

According to page 152 of the JNI Programmer's Guide
and Specification
by Sheng Liang overloaded Java native methods names
are converted to C
function names by adding "__" and the encoded argument
list. My patch
tries to fix that, but unfortunately I don't seem to
be able to access
an initialized CLASS_METHODS structure in order to
check for duplicate
methods.

So I'd be glad if someone with more kaffeh hacking
experience could
take a closer look at it and tell me if I'm missing
something
obvious. As a bit of background motivation, this is
the last bit
holding back the merge of the ALSA based sound backend
from
tritonus.org.

Attached you'll find the patch, an initial changelog
entry, a test
class and output from kaffeh -jni and javah -jni from
JDK 1.3.

best regards,

dalibor topic

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
--0-547812573-1041030014=:15648
Content-Type: application/x-gzip-compressed; name="kaffeh-overloaded-native-naming.tar.gz"
Content-Transfer-Encoding: base64
Content-Description: kaffeh-overloaded-native-naming.tar.gz
Content-Disposition: attachment; filename="kaffeh-overloaded-native-naming.tar.gz"

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

--0-547812573-1041030014=:15648--