@@ -150,7 +150,12 @@ internal final class InternalDefaultLiveCounter: Sendable {
150150 objectMessageSerialTimestamp: Date ? ,
151151 ) -> LiveObjectUpdate < DefaultLiveCounterUpdate > {
152152 mutex. withLock {
153- mutableState. replaceData ( using: state, objectMessageSerialTimestamp: objectMessageSerialTimestamp)
153+ mutableState. replaceData (
154+ using: state,
155+ objectMessageSerialTimestamp: objectMessageSerialTimestamp,
156+ logger: logger,
157+ clock: clock,
158+ )
154159 }
155160 }
156161
@@ -221,6 +226,8 @@ internal final class InternalDefaultLiveCounter: Sendable {
221226 internal mutating func replaceData(
222227 using state: ObjectState ,
223228 objectMessageSerialTimestamp: Date ? ,
229+ logger: Logger ,
230+ clock: SimpleClock ,
224231 ) -> LiveObjectUpdate < DefaultLiveCounterUpdate > {
225232 // RTLC6a: Replace the private siteTimeserials with the value from ObjectState.siteTimeserials
226233 liveObjectMutableState. siteTimeserials = state. siteTimeserials
@@ -230,6 +237,20 @@ internal final class InternalDefaultLiveCounter: Sendable {
230237 return . noop
231238 }
232239
240+ // RTLC6f: Tombstone if state indicates tombstoned
241+ if state. tombstone {
242+ let dataBeforeTombstoning = data
243+
244+ tombstone (
245+ objectMessageSerialTimestamp: objectMessageSerialTimestamp,
246+ logger: logger,
247+ clock: clock,
248+ )
249+
250+ // RTLC6f1
251+ return . update( . init( amount: - dataBeforeTombstoning) )
252+ }
253+
233254 // RTLC6b: Set the private flag createOperationIsMerged to false
234255 liveObjectMutableState. createOperationIsMerged = false
235256
0 commit comments