This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: Verify error and $Mnl methods
- To: Jocelyn Paine <popx at pop3 dot ifs dot org dot uk>
- Subject: Re: Verify error and $Mnl methods
- From: Per Bothner <per at bothner dot com>
- Date: Sun, 04 Nov 2001 10:55:38 -0800
- CC: kawa at sourceware dot cygnus dot com
- References: <Pine.LNX.4.10.10111041001020.29915-100000@pop3.ifs.org.uk>
Jocelyn Paine wrote:
>Using the binary release of 1.6.96, I'm getting a verify error when
>I run a servlet whose doGet method calls a Kawa function with argument
>types ( HttpServletRequest, HttpServletResponse, String ) and result type
>void:
> java.lang.VerifyError: (class: kb7/wsm/Control, method: doGet$Mn1
> signature:
> (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;)V)
> Expecting to find integer on stack
> at kb7.wsm.WSMServlet.doGet(Compiled Code)
>
>(My function is named do-get and defined in kb7.wsm.Control, as evident
>from the trace)
>
Is your do-get procedure meant to match the HttpServlet 'doGet' method?
If so, you should call it that, rather than depend on Kawa mangling to
make them
the same. If they are not meant to be the same, it is possible they
might accidentally
get mangled the same. My original name mangling would map a Scheme
procedure
'do-get' to a method 'doGet' - see the "Mangling" section of the Kawa
manual. I now
tend to thing this may not be a good idea, mainly because it makes manglings
non-reversible, so now most of the things that are mangled use a simple
encoding
of non-Java-identifier characters. However, procedure names are still
mangled the
old way; there may be some inconsistency you're run across.
>Any ideas? What does the compiler generate $Mnl methods for, and what's
>the integer that's expected?
>
The $Mn is the mangling for '-', so doGet$Mn1 is the mangling of 'doGet-1'.
I don't know what integer is expected.