func newFile(repo BlobLoader, node *restic.Node, ownerIsRoot bool) (*file, error) { debug.Log("newFile", "create new file for %v with %d blobs", node.Name, len(node.Content)) var bytes uint64 sizes := make([]uint, len(node.Content)) for i, id := range node.Content { size, err := repo.LookupBlobSize(id) if err != nil { return nil, err } sizes[i] = size bytes += uint64(size) } if bytes != node.Size { debug.Log("newFile", "sizes do not match: node.Size %v != size %v, using real size", node.Size, bytes) node.Size = bytes } return &file{ repo: repo, node: node, sizes: sizes, blobs: make([][]byte, len(node.Content)), ownerIsRoot: ownerIsRoot, }, nil }