Hi All,
I have problem with local variables.
My intention is to insert a statement
Object param = methodA(this) at the start of method
And
methodB(param, "message") at the end of method
I am using try-finally because i need to jump to finally before each
return statement.
I could not understand clearly the concept of local variables
here
What i am doing is
I am creating a local variable "param"
setting the index of this variable to "1" using localVar.setIndex(1)
and retreiving it by using new ALOAD(1)
As i am using try-finally, i should catch and rethrow the exception
so i am storing the exception in localvar 2 in handler
new ASTORE(2),
and retreiving it back by new ALOAD(2), before rethrowing it.
And I am sotirng the return address in localvar 3
And the method is modified, when I tried to open it with jad, I cant see
the method , a message is displayed as following
// JavaClassFileOutputException: get_local_var: index out of range
I treid to find the set of isntructions of this method using javap - c
option, I got the following , which seems to be correct for me
0: aload_0
1: invokestatic #986; //Method
methodA:(Ljava/lang/Object;)Ljava/lang/Object;
4: astore_1
5: getstatic #989; //Field
java/lang/System.out:Ljava/io/PrintStream;
8: ldc_w #1006; //String method call : getCurrentLogonUser
11: invokevirtual #996; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
14: aload_0
15: getfield #584; //Field
currentUser:Lcom/sap/ip/me/core/UserImpl;
18: areturn
19: astore_2
20: jsr 25
23: aload_2
24: athrow
25: astore_3
26: getstatic #989; //Field
java/lang/System.out:Ljava/io/PrintStream;
29: ldc_w #1008; //String method exit : getCurrentLogonUser
32: invokevirtual #996; //Method
java/io/PrintStream.println:(Ljava/lang/String;)V
35: aload_1
36: ldc_w #1008; //String method exit : getCurrentLogonUser
39: invokestatic #1002; //Method
methodB:(Ljava/lang/Object;Ljava/lang/String;)V
42: ret 3
Exception table:
from to target type
14 19 19 any
Could you please let me know, where I am wrong.. Is it problem with
decompiler??
Cant I set the index of local variables as I like???
Please help me in this regard...
Thank you
Reddy
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]