We need to query exit site data while holding a different lock then when we query all of the other data. Currently, CallLinkStatus knows what to query but it does so behind an opaque API that assumes that it's querying the CallLinkInfo for a op_call/op_construct instruction. This would make it difficult to integrate with a different Status class that wants to use a CallLinkInfo that is embedded inside a stub, like GetByIdStatus or PutByIdStatus - those will only see that there is a CallLinkInfo for which to compute status while they are already holding the "wrong" lock for computing exit site data. We should refactor things so that:
- You can ask CallLinkStatus to compute exit site data - essentially an opaque data token - without giving it the CallLinkInfo.
- You can pass the exit site data and the CallLinkInfo and get a complete CallLinkStatus.
- Do what you do now - i.e. we shouldn't change the existing API that just does all of this for you.
Created attachment 231648 [details]
Landed in http://trac.webkit.org/changeset/169014