let get_new_marks ff nodes_marks =
let fm = get_ff_marks ff in
let add_if_new acc (n, m) =
let nkey = match n with
| PdgMarks.SelNode (n, _z_opt) ->
(* TODO : something to do for z_opt ? *)
!Db.Pdg.node_key n
| PdgMarks.SelIn l -> PdgIndex.Key.implicit_in_key l
in
let oldm = get_mark fm nkey in
let newm = Marks.minus_marks m oldm in
(* Format.printf "get_new_marks for %a : old=%a new=%a -> %a@."
!Db.Pdg.pretty_key nkey Marks.pretty_mark oldm
Marks.pretty_mark m Marks.pretty_mark newm; *)
if not (Marks.is_bottom_mark newm) then (n, newm)::acc else acc
in List.fold_left add_if_new [] nodes_marks