From 06e97975d804d1309b99b5f5a211f88b58137463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Mon, 19 Oct 2026 23:35:04 +0900 Subject: [PATCH] fix: enhance LoadFromPath function to include file size and optional CRC handling for improved error logging --- internal/mmkv/mmkv.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/mmkv/mmkv.go b/internal/mmkv/mmkv.go index 368bb11..5ab040f 100644 --- a/internal/mmkv/mmkv.go +++ b/internal/mmkv/mmkv.go @@ -2,6 +2,7 @@ package mmkv import ( "fmt" + "io" "os" "git.um-react.app/um/cli/algo/common" @@ -21,6 +22,7 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM } defer mr.Close() + var crc io.Reader cr, err := os.Open(mmkv_crc) if err != nil { // crc is optional @@ -28,14 +30,22 @@ func LoadFromPath(path string, key string, logger *zap.Logger) (result common.QM key = "" } else { defer cr.Close() + crc = cr } + stat, err := os.Stat(path) + if err != nil { + logger.Error("LoadMMKV: Could not stat mmkv file", zap.Error(err)) + return nil, fmt.Errorf("LoadMMKV: stat error: %w", err) + } + mmkv_size := stat.Size() + var password []byte = nil if key != "" { password = make([]byte, 16) copy(password, []byte(key)) } - mmkv, err := go_mmkv.NewMMKVReader(mr, password, cr) + mmkv, err := go_mmkv.NewMMKVReader(mr, mmkv_size, password, crc) if err != nil { logger.Error("LoadMMKV: failed to create reader", zap.Error(err)) return nil, fmt.Errorf("LoadMMKV: NewMMKVReader error: %w", err)