Kohsuke Kawaguchi wrote:

Actually your above example should be quite simple, especially if we can assume that we know local variable types (e.g. debug information is available):

Well, sure, if you can use debug information, but I don't think we can assume that in javaflow, can we.

  It depends. But in general you probably right. :-)

Though more complicated case would be the case when restoring stack not directly used by the currently restoring method. Probably something similar to what happening for NEW opcodes. And for this we will have to always search for common super class or interface.

OK, sounds like we are in agreement that we sometimes do need to compute the base class.

Right. BTW, SimpleVerifier is actually doing this already using Class methods.

Though there is some tricky scenario that would be difficult to handle. This is in case when two classes would have more then one common interface (e.g. both implements Comparable and Externalizable) and don't have common super class. Eric left a comment in SimpleVerifier code about this scenario and I am not sure how this can be resolved.

It shouldn't be too difficult; BCEL does that. As I wrote in the commit message, all we need is a resolver that can get you the byte code image of those referenced classes (like ClassX and ClassY.)

We have code for this within ASM test cases. It is in MUSTANG_SUPPORT branch in org.objectweb.asm.ClassWriterTest3 class. If you like I can try to put this code into SimpleVerifier subclass already used in javaflow.

That would be great.

Will do that and then depends from the results of your testing I can look at implementing algorithm based on dataflow only.

  regards,
  Eugene


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to