diff --git a/rbf/tx.go b/rbf/tx.go index 3139847dd..a47790d9c 100644 --- a/rbf/tx.go +++ b/rbf/tx.go @@ -1785,13 +1785,13 @@ func (s *containerFilter) ApplyRewriter() (err error) { var dirty bool var key roaring.FilterKey var writeback roaring.ContainerWriteback = func(updateKey roaring.FilterKey, data *roaring.Container) (err error) { + dirty = true var exact bool if updateKey != key { exact, err = s.cursor.Seek(uint64(updateKey)) if err != nil { return err } - dirty = true } else { exact = true } @@ -1799,20 +1799,12 @@ func (s *containerFilter) ApplyRewriter() (err error) { if exact { err = s.cursor.deleteLeafCell(uint64(updateKey)) key = ^roaring.FilterKey(0) - // if we got here by a seek, we're already marked dirty, - // but if we're on a cell and delete it, we've invalidated - // our cursor position. - dirty = true } // if we don't delete, we aren't changing our situation at all } else { cell = ConvertToLeafArgs(uint64(updateKey), data) err = s.cursor.putLeafCell(cell) key = ^roaring.FilterKey(0) - // no dirty flag here; if we had to seek, the cursor became - // dirty (is no longer pointed at the key we thought it was - // pointed to, so the main loop would want to seek), and if - // we didn't seek, we're still where we used to be. } return err }