From b24de97b04cf33fc3908fe0de025b108e195f8e2 Mon Sep 17 00:00:00 2001 From: Tommi Virtanen Date: Mon, 8 Jun 2015 21:43:11 -0700 Subject: [PATCH] dagmodifier: Don't lose pin if old and new key happen to be equal License: MIT Signed-off-by: Jeromy --- unixfs/mod/dagmodifier.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unixfs/mod/dagmodifier.go b/unixfs/mod/dagmodifier.go index bb22f289f..df1abe0b6 100644 --- a/unixfs/mod/dagmodifier.go +++ b/unixfs/mod/dagmodifier.go @@ -209,9 +209,10 @@ func (dm *DagModifier) Sync() error { dm.curNode = nd } - // Finalize correct pinning, and flush pinner - dm.mp.PinWithMode(thisk, pin.Recursive) + // Finalize correct pinning, and flush pinner. + // Be careful about the order, as curk might equal thisk. dm.mp.RemovePinWithMode(curk, pin.Recursive) + dm.mp.PinWithMode(thisk, pin.Recursive) err = dm.mp.Flush() if err != nil { return err