Tomek Grabiec wrote:
> When method is a JNI method, then we add a pointer to JNI environemnt
> as the first argument. If method is also static, we put class's object
> refrence as second argument. All those arguments must be treated same
> as any other arguments, so they should receive indices 0 and 1
> respectively.
> 
> Signed-off-by: Tomek Grabiec <tgrab...@gmail.com>

Eduard, does this look OK to you?

> ---
>  jit/args.c |    9 +++++----
>  1 files changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/jit/args.c b/jit/args.c
> index 5c6ddaa..a6cc721 100644
> --- a/jit/args.c
> +++ b/jit/args.c
> @@ -84,6 +84,7 @@ struct expression *convert_args(struct stack *mimic_stack,
>                               struct vm_method *method)
>  {
>       struct expression *args_list = NULL;
> +     unsigned long nr_args_total;
>       unsigned long i;
>  
>       if (nr_args == 0) {
> @@ -91,6 +92,8 @@ struct expression *convert_args(struct stack *mimic_stack,
>               goto out;
>       }
>  
> +     nr_args_total = nr_args;
> +
>       if (vm_method_is_jni(method)) {
>               if (vm_method_is_static(method))
>                       --nr_args;
> @@ -105,7 +108,7 @@ struct expression *convert_args(struct stack *mimic_stack,
>       for (i = 0; i < nr_args; i++) {
>               struct expression *expr = stack_pop(mimic_stack);
>               args_list = insert_arg(args_list, expr,
> -                                    method, nr_args - i - 1);
> +                                    method, nr_args_total - i - 1);
>       }
>  
>       if (vm_method_is_jni(method)) {
> @@ -122,9 +125,8 @@ struct expression *convert_args(struct stack *mimic_stack,
>                               return NULL;
>                       }
>  
> -                     /* FIXME: Set index correctly */
>                       args_list = insert_arg(args_list, class_expr,
> -                                            method, 0);
> +                                            method, 1);
>               }
>  
>               jni_env_expr = value_expr(J_REFERENCE,
> @@ -134,7 +136,6 @@ struct expression *convert_args(struct stack *mimic_stack,
>                       return NULL;
>               }
>  
> -             /* FIXME: Set index correctly */
>               args_list = insert_arg(args_list, jni_env_expr, method, 0);
>       }
>  


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to