On Saturday 27 July 2002 01:14, Philip Fong wrote:
>
> I have just committed the following:
...
>
> What is remaining are two particular patches:
> (1) I am not sure what the patch on interpret.c (invokeinterface code)
> is for. Would you mind to explain a bit more? As I understand
> from the JVM spec the narg operand only counts the arguments
> but not the objectref. Am I missing something?
I think the JVM spec is not clear there. This is also what I understood at
first, but I have a testcase that proves the objectref is in fact included
in the count. Have a look at the attached java files and try them with and
without the patch, you'll see :)
(I myself used AE_DEBUG_INSTR to find out what was really going on.)
> (2) Concerning the following patch:
>
> > - jpr.diff (patch to j_utf8_scan_qualified_name() and
> > j_utf8_scan_java_simple_class_name(). I'm not sure these are the right
> > fixes for the problem but I know there definitely is a problem with name
> > recognition as mauve and several other programs expect JVMs to accept in
> > there command line names like foo.bar as a java program to execute)
>
> Do you mean that, say the main() method of a Java program resides
> in class foo.bar, typing "aegisvm foo.bar" does not properly
> start the program?
>
yes, if I use aegisvm foo.bar I will have the following error:
resolve.c:303: failed assertion: thread != 0 && classname != 0 &&
j_utf8_is_class_name(classname)
because j_utf8_scan_qualified_name() doesn't deal with J_ASCII_period.
The fix to j_utf8_scan_java_simple_class_name() is also needed if you want
to pass test names to mauve as foo/bar/foobar instead of foo.bar.foobar.
Regards,
--
Gildas |