X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/d9fddc0f506eb4ead7049f5638674b2b8773fcaa..f226928c3a074ac4856ba07e8fd7107aba5444a3:/tree.go diff --git a/tree.go b/tree.go index 83ecda3..69558c5 100644 --- a/tree.go +++ b/tree.go @@ -124,6 +124,7 @@ func (t *Tree) Close() error { for level, index := range t.levels { err = errors.Join(err, index.Close()) + delete(t.levels, level) } @@ -178,6 +179,7 @@ func (t *Tree) Node(level, index int) (Node, bool, error) { } var node Node + err = json.Unmarshal(line, &node) if err != nil { return Node{}, false, fmt.Errorf("decode node (%d, %d): %w", level, index, err) @@ -212,6 +214,7 @@ func (t *Tree) Keys() ([]NodeKey, error) { func (t *Tree) open(ctx context.Context, total int) error { var err error + t.order, err = openRecords(filepath.Join(t.dir, "tree.idx"), treeRecordBytes) if err != nil { return err @@ -245,6 +248,7 @@ func (t *Tree) open(ctx context.Context, total int) error { return t.journal.Scan(ctx, start, func(line []byte, place Position) error { var node Node + err := json.Unmarshal(line, &node) if err != nil { return fmt.Errorf("decode tree node: %w", err)