[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Call sites without any target methods in invoke graph
If I remember correctly (and someone correct me if I am wrong) ...
you can get empty call sites for unreachable code or method calls
where the receiver is null. That is, if there is no chain of assignments
between some new and the receiver of the call, then the call will never
happen at runtime, and there may be no reaching type via VTA.
Laurie
+-------------------------------------------------------------+
| Professor Laurie Hendren, School of Computer Science |
| McGill University |
| 318 McConnell Engineering Building tel: (514) 398-7391 |
| 3480 University Street fax: (514) 398-3883 |
| Montreal, Quebec H3A 2A7 hendren@cs.mcgill.ca |
| CANADA http://www.sable.mcgill.ca/~hendren |
+-------------------------------------------------------------+
On Wed, 20 Feb 2002, Pierre-Luc Brunelle wrote:
> Hi,
>
> I am using Soot to find out the methods that can possibly be called at
> each call site. I am comparing CHA to VTA. While looking at the results,
> I was surprised to see that for some call sites, there are no target
> methods. There seems to be more empty call sites after VTA than after
> CHA.
>
> I see in method CallGraphStats.computeStats() (from file
> InvokeGraph.java) the following condition:
> if (numOfEdges <= 1) { /* mono call site */ }
> instead of
> if (numOfEdges == 1)
> so I guess this is a normal condition. How come some call sites do not
> have any target method?
>
> Thanks,
>
> Pierre-Luc Brunelle
>