From 49e09e5cdabef9fd98bf2819ccac1f4dec2147cb Mon Sep 17 00:00:00 2001 From: Sam Blackshear Date: Mon, 24 Aug 2015 06:20:56 -0600 Subject: [PATCH] [Infer][incremental] Always assigning to "changed" field of procdescs Summary: The old code was buggy in that if a procdesc got marked as unchanged, it would stay unchanged forever. --- infer/src/backend/cfg.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infer/src/backend/cfg.ml b/infer/src/backend/cfg.ml index 1d93d49ae..9318be2d0 100644 --- a/infer/src/backend/cfg.ml +++ b/infer/src/backend/cfg.ml @@ -121,8 +121,8 @@ module Node = struct let mark_pdesc_if_unchanged pname new_pdesc = try let old_pdesc = Procname.Hash.find old_procs pname in - if pdescs_eq old_pdesc new_pdesc then - new_pdesc.pd_changed <- false + let changed = not (pdescs_eq old_pdesc new_pdesc) in + new_pdesc.pd_changed <- changed with Not_found -> () in Procname.Hash.iter mark_pdesc_if_unchanged new_procs