@@ -285,22 +285,24 @@ object BreakManager : RequestHandler<BreakRequest>(), PositionBlocking {
285285
286286 private fun refreshOrCancelBreaks (newContexts : MutableCollection <BreakContext >, request : BreakRequest ) {
287287 breakInfos
288- .forEachNotNull { info ->
288+ .filterNotNull()
289+ .forEach { info ->
289290 newContexts.find { ctx -> ctx.expectedPos == info.context.expectedPos }?.let { ctx ->
290291 info.updateInfo(ctx, request)
291292 newContexts.remove(ctx)
292- return @forEachNotNull
293+ return @forEach
293294 }
294295
295296 info.cancelBreak()
296297 }
297298 }
298299
299- private fun SafeContext.processNewBreaks (newBreaks : Collection <BreakContext >, request : BreakRequest ) {
300+ private fun SafeContext.processNewBreaks (newBreaks : MutableCollection <BreakContext >, request : BreakRequest ) {
300301 newBreaks
301302 .filter { ! it.instantBreak }
302303 .forEach { ctx ->
303304 handleNewBreak(ctx, request) ? : return
305+ newBreaks.remove(ctx)
304306 request.onAccept?.invoke(ctx.expectedPos)
305307 if (atMaxBreakInfos(request.buildConfig.breakSettings)) return
306308 }
@@ -365,7 +367,7 @@ object BreakManager : RequestHandler<BreakRequest>(), PositionBlocking {
365367 }
366368
367369 private fun setPendingBreaksLimits (buildConfig : BuildConfig ) {
368- pendingBreaks.setMaxSize (buildConfig.breakSettings.maxPendingBreaks)
370+ pendingBreaks.setSizeLimit (buildConfig.breakSettings.maxPendingBreaks)
369371 pendingBreaks.setDecayTime(buildConfig.interactionTimeout * 50L )
370372 }
371373
@@ -621,10 +623,6 @@ object BreakManager : RequestHandler<BreakRequest>(), PositionBlocking {
621623 else -> secondaryBreak = null
622624 }
623625
624- private fun Array<BreakInfo?>.forEachNotNull (block : (BreakInfo ) -> Unit ) {
625- for (info in this ) info?.run (block)
626- }
627-
628626 override fun preEvent () = UpdateManagerEvent .Break .Pre ().post()
629627 override fun postEvent () = UpdateManagerEvent .Break .Post ().post()
630628}
0 commit comments