diff --git a/reader.go b/reader.go index 225830d..55f5ab7 100644 --- a/reader.go +++ b/reader.go @@ -96,20 +96,20 @@ func NewReader(r io.ReaderAt) (*Reader, error) { return nil, err } } else { - toRead := squash.s.IdCount - var curRead uint16 + toRead := squash.s.FragCount + var curRead uint32 var tmp []fragEntry var rdr *metadata.Reader var offset int for i := range fragOffsets { - curRead = uint16(math.Min(512, float64(toRead))) + curRead = uint32(math.Min(512, float64(toRead))) tmp = make([]fragEntry, curRead) rdr = metadata.NewReader(toreader.NewReader(r, int64(fragOffsets[i])), squash.d) err = binary.Read(rdr, binary.LittleEndian, &tmp) if err != nil { return nil, err } - offset = int(squash.s.IdCount - toRead) + offset = int(squash.s.FragCount - toRead) for i := range tmp { squash.fragEntries[offset+i] = tmp[i] } diff --git a/reader_fs.go b/reader_fs.go index b1d1f77..088e47a 100644 --- a/reader_fs.go +++ b/reader_fs.go @@ -131,7 +131,7 @@ func (f FS) Glob(pattern string) (out []string, err error) { Err: err, } } - subGlob, err := sub.(FS).Glob(strings.Join(split[1:], "/")) + subGlob, err := sub.(fs.GlobFS).Glob(strings.Join(split[1:], "/")) if err != nil { if pathErr, ok := err.(*fs.PathError); ok { if pathErr.Err == fs.ErrNotExist { @@ -208,7 +208,7 @@ func (f FS) ReadDir(name string) ([]fs.DirEntry, error) { Err: err, } } - redDir, err := sub.(FS).ReadDir(strings.Join(split[1:], "/")) + redDir, err := sub.(fs.ReadDirFS).ReadDir(strings.Join(split[1:], "/")) if err != nil { if pathErr, ok := err.(*fs.PathError); ok { if pathErr.Err == fs.ErrNotExist { @@ -299,7 +299,7 @@ func (f FS) Stat(name string) (fs.FileInfo, error) { Err: err, } } - stat, err := sub.(FS).Stat(strings.Join(split[1:], "/")) + stat, err := sub.(fs.StatFS).Stat(strings.Join(split[1:], "/")) if err != nil { if pathErr, ok := err.(*fs.PathError); ok { if pathErr.Err == fs.ErrNotExist {