From df56cfb253324fa03f954fc4df8fedffcc701b19 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr>
Date: Fri, 16 Feb 2024 14:08:52 +0100
Subject: [PATCH] [Kernel] State_builder: adds [reset] function to counters.

---
 src/libraries/project/state_builder.ml  | 3 +++
 src/libraries/project/state_builder.mli | 4 ++++
 2 files changed, 7 insertions(+)

diff --git a/src/libraries/project/state_builder.ml b/src/libraries/project/state_builder.ml
index 519505130bd..231dae0d4a6 100644
--- a/src/libraries/project/state_builder.ml
+++ b/src/libraries/project/state_builder.ml
@@ -814,6 +814,7 @@ module Hashconsing_tbl =
 module type Counter = sig
   val next : unit -> int
   val get: unit -> int
+  val reset: unit -> unit
   val self: State.t
 end
 
@@ -849,6 +850,7 @@ module SharedCounter(Info : sig val name : string end) = struct
 
   let next () = incr cpt ; !cpt
   let get () = !cpt
+  let reset () = cpt := 0
   let self = Cpt.self
 
 end
@@ -886,6 +888,7 @@ module Counter(Info : sig val name : string end) = struct
 
   let next () = incr !cpt ; !(!cpt)
   let get () = !(!cpt)
+  let reset () = !cpt := 0
   let self = Cpt.self
 
 end
diff --git a/src/libraries/project/state_builder.mli b/src/libraries/project/state_builder.mli
index f4770180a8e..10bbb9e9686 100644
--- a/src/libraries/project/state_builder.mli
+++ b/src/libraries/project/state_builder.mli
@@ -507,6 +507,10 @@ module type Counter = sig
   (** @return the current value of the counter, without incrementing it.
       @since Fluorine-20130401 *)
 
+  (** Resets the counter to 0.
+      @since Frama-C+dev *)
+  val reset: unit -> unit
+
   val self: State.t
   (** @since Oxygen-20120901 *)
 
-- 
GitLab