Using the attributes table to find out the method to call in virtual calls

Reviewed By: cristianoc

Differential Revision: D2932363

fb-gh-sync-id: 7c97bd1
shipit-source-id: 7c97bd1
master
Dulma Rodriguez 9 years ago committed by facebook-github-bot-7
parent f703d780da
commit efd3aeccc6

@ -595,8 +595,12 @@ let proc_desc_copy cfg pdesc pname pname' =
let method_exists right_proc_name methods = let method_exists right_proc_name methods =
if !Config.curr_language = Config.Java then if !Config.curr_language = Config.Java then
IList.exists (fun meth_name -> Procname.equal right_proc_name meth_name) methods IList.exists (fun meth_name -> Procname.equal right_proc_name meth_name) methods
else (* ObjC case *) else (* ObjC/C++ case : The attribute map will only exist when we have code for the method or
Specs.summary_exists right_proc_name the method has been called directly somewhere. It can still be that this is not the
case but we have a model for the method. *)
match AttributesTable.load_attributes right_proc_name with
| Some attrs -> attrs.ProcAttributes.is_defined
| None -> Specs.summary_exists_in_models right_proc_name
let resolve_method tenv class_name proc_name = let resolve_method tenv class_name proc_name =
let found_class = let found_class =

Loading…
Cancel
Save