From c9723603866853439d15104c31915211a5e3cd75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Karl?= <3951388+JoeKar@users.noreply.github.com> Date: Sat, 1 Jun 2024 15:27:06 +0200 Subject: [PATCH] serialize: Perform write process safe --- internal/buffer/serialize.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/internal/buffer/serialize.go b/internal/buffer/serialize.go index 06906f76..bedac2ac 100644 --- a/internal/buffer/serialize.go +++ b/internal/buffer/serialize.go @@ -1,15 +1,13 @@ package buffer import ( + "bytes" "encoding/gob" "errors" - "io" "os" "path/filepath" "time" - "golang.org/x/text/encoding" - "github.com/zyedidia/micro/v2/internal/config" "github.com/zyedidia/micro/v2/internal/util" ) @@ -31,16 +29,18 @@ func (b *Buffer) Serialize() error { return nil } - name := util.DetermineEscapePath(filepath.Join(config.ConfigDir, "buffers"), b.AbsPath) - - return overwriteFile(name, encoding.Nop, func(file io.Writer) error { - err := gob.NewEncoder(file).Encode(SerializedBuffer{ - b.EventHandler, - b.GetActiveCursor().Loc, - b.ModTime, - }) + var buf bytes.Buffer + err := gob.NewEncoder(&buf).Encode(SerializedBuffer{ + b.EventHandler, + b.GetActiveCursor().Loc, + b.ModTime, + }) + if err != nil { return err - }, false) + } + + name := util.DetermineEscapePath(filepath.Join(config.ConfigDir, "buffers"), b.AbsPath) + return util.SafeWrite(name, buf.Bytes(), true) } // Unserialize loads the buffer info from config.ConfigDir/buffers