Arrin,
The parameter types are available from the MethodGenerator. The register
indexes are not.
It makes for really ugly code if I have to special case things and
calculate the indexes myself.
It is also true that my code is more than a little bit ugly already and
it's hard to figure out all
the interactions.
Oh well. Much thanks.
-Bil
Hi Bil
I'm not really sure about what your using the LocalVariableTable for
do you need to know about all local variables or only those that hold
the parameters to the method? If you only need the parameters then I'd
be extracting these from the signature, but if you need the types of
all LocalVariables I can see why it would get complicated.
I/We have done something like this before though using
ControlFlowGraph, InstructionContexts and some other classes in
org.apache.bcel.verifier.structurals.* these let you perform a
simulation of execution (recursively following different branches)
during which you could inspect the Stack and record the types
associated with various instructions encountered in for instance a
HashMap. One problem I found is that the JustIce verifier found the
descriptions about what was a legal subroutine vague and made it's own
interpretation, therefore it sometimes comes up with errors
(Exceptions) in what you expect to be legal code. The only way I have
found to avoid this is to modify the Subroutines class and remove the
throwing of exceptions, you could catch the exception but this leaves
the Subrountines and ControlFlowGraph structures improperly
initialized. (Still it's not such a nice solution if you know a better
one let me know please)
I hope this helps
Bye Arrin
PS: We were interested in the types being put into multi dimensional
arrays but I imagine you could capture the types going into
LocalVaraibleInstructions in much the same way.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]