Re: Re: AnalyzerAdapter: computed stack incorrect after super-constructor call?

Andreas Sewe <[email protected]>
Newsgroups gmane.comp.java.objectweb.asm
Organization Software Technology Group, Technisch e Universität Darmstadt
Message-ID <[email protected]>
Hi Eugene,

thanks for the quick reply.

You wrote:
>   I would have to look at this particular issue closer, but you should
> keep in mind that AnalyzerAdapter rely on the stackmap data stored in
> the bytecode and that data can be potentially incorrect or even
> absent.

In the example I gave there are no stack map frames stored in the class 
file. After all, the constructor consists of just a single basic block.

>   Also, in the stackmap data the first frame is omitted and
> AnalyzerAdapter is trying to recalculate it from the method signature
> (and owner's type). So, for the constructor ("<init>") initial value
> of variable 0 is UNINITIALIZED_THIS, but it gets replaced with value
> of the "owner" parameter passed to the AnalyzerAdapter constructor
> after first INVOKESPECIAL call on variable 0. So, you need to check
> that you have a correct "owner" value.

Yes, I just checked that and it is correct, i.e., Foo instead of Object. 
But it's good to know that my interpretation is correct, i.e., that 
UNINITIALIZED_THIS should morph into Foo, not into Object. I guess I now 
have to do some digging and produce a simple test case so you can 
reproduce this.

Best wishes,

Andreas Sewe
message-footer.txt (text/plain, 238 B)
-- 
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.