From 53f9724a0fc085d0911265785a68dddcedafcc3a Mon Sep 17 00:00:00 2001
From: ssilagadze <ssilagadze@purestorage.com>
Date: Fri, 7 Jun 2024 10:52:10 +0200
Subject: [PATCH] clear map properly

---
 internal/metamorph/processor.go | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/internal/metamorph/processor.go b/internal/metamorph/processor.go
index bed9a9811..917749a44 100644
--- a/internal/metamorph/processor.go
+++ b/internal/metamorph/processor.go
@@ -265,13 +265,13 @@ func (p *Processor) StartProcessMinedCallbacks() {
 	}()
 }
 
-func (p *Processor) CheckAndUpdate(statusUpdatesMap *map[chainhash.Hash]store.UpdateStatus) {
-	if len(*statusUpdatesMap) == 0 {
+func (p *Processor) CheckAndUpdate(statusUpdatesMap map[chainhash.Hash]store.UpdateStatus) {
+	if len(statusUpdatesMap) == 0 {
 		return
 	}
 
 	statusUpdates := make([]store.UpdateStatus, 0, p.processStatusUpdatesBatchSize)
-	for _, distinctStatusUpdate := range *statusUpdatesMap {
+	for _, distinctStatusUpdate := range statusUpdatesMap {
 		statusUpdates = append(statusUpdates, distinctStatusUpdate)
 	}
 
@@ -279,8 +279,6 @@ func (p *Processor) CheckAndUpdate(statusUpdatesMap *map[chainhash.Hash]store.Up
 	if err != nil {
 		p.logger.Error("failed to bulk update statuses", slog.String("err", err.Error()))
 	}
-
-	*statusUpdatesMap = map[chainhash.Hash]store.UpdateStatus{}
 }
 
 func (p *Processor) StartProcessStatusUpdatesInStorage() {
@@ -306,10 +304,14 @@ func (p *Processor) StartProcessStatusUpdatesInStorage() {
 				}
 
 				if len(statusUpdatesMap) >= p.processStatusUpdatesBatchSize {
-					p.CheckAndUpdate(&statusUpdatesMap)
+					p.CheckAndUpdate(statusUpdatesMap)
+					statusUpdatesMap = map[chainhash.Hash]store.UpdateStatus{}
 				}
 			case <-ticker.C:
-				p.CheckAndUpdate(&statusUpdatesMap)
+				if len(statusUpdatesMap) > 0 {
+					p.CheckAndUpdate(statusUpdatesMap)
+					statusUpdatesMap = map[chainhash.Hash]store.UpdateStatus{}
+				}
 			}
 		}
 	}()