summaryrefslogtreecommitdiff
path: root/lib/btrfs/btrfsitem/items.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-02-03 11:32:52 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-02-12 16:16:53 -0700
commit677755c799c1b6b942349c7d9de836335c7bbf55 (patch)
tree9709e8bb3040d3afa31388b448077a04523a979f /lib/btrfs/btrfsitem/items.go
parent81e8155ff1c16dbf70206fbf239f99cf37c49432 (diff)
btrfsitem: Have all Item implementations be pointers to structs
Diffstat (limited to 'lib/btrfs/btrfsitem/items.go')
-rw-r--r--lib/btrfs/btrfsitem/items.go18
1 files changed, 9 insertions, 9 deletions
diff --git a/lib/btrfs/btrfsitem/items.go b/lib/btrfs/btrfsitem/items.go
index 67f96fa..9964e2d 100644
--- a/lib/btrfs/btrfsitem/items.go
+++ b/lib/btrfs/btrfsitem/items.go
@@ -25,7 +25,7 @@ type Error struct {
Err error
}
-func (Error) isItem() {}
+func (*Error) isItem() {}
func (o Error) MarshalBinary() ([]byte, error) {
return o.Dat, nil
@@ -43,7 +43,7 @@ func UnmarshalItem(key btrfsprim.Key, csumType btrfssum.CSumType, dat []byte) It
var ok bool
gotyp, ok = untypedObjID2gotype[key.ObjectID]
if !ok {
- return Error{
+ return &Error{
Dat: dat,
Err: fmt.Errorf("btrfsitem.UnmarshalItem({ItemType:%v, ObjectID:%v}, dat): unknown object ID for untyped item",
key.ItemType, key.ObjectID),
@@ -53,31 +53,31 @@ func UnmarshalItem(key btrfsprim.Key, csumType btrfssum.CSumType, dat []byte) It
var ok bool
gotyp, ok = keytype2gotype[key.ItemType]
if !ok {
- return Error{
+ return &Error{
Dat: dat,
Err: fmt.Errorf("btrfsitem.UnmarshalItem({ItemType:%v}, dat): unknown item type", key.ItemType),
}
}
}
- retPtr := reflect.New(gotyp)
- if csums, ok := retPtr.Interface().(*ExtentCSum); ok {
+ ptr := reflect.New(gotyp)
+ if csums, ok := ptr.Interface().(*ExtentCSum); ok {
csums.ChecksumSize = csumType.Size()
csums.Addr = btrfsvol.LogicalAddr(key.Offset)
}
- n, err := binstruct.Unmarshal(dat, retPtr.Interface())
+ n, err := binstruct.Unmarshal(dat, ptr.Interface())
if err != nil {
- return Error{
+ return &Error{
Dat: dat,
Err: fmt.Errorf("btrfsitem.UnmarshalItem({ItemType:%v}, dat): %w", key.ItemType, err),
}
}
if n < len(dat) {
- return Error{
+ return &Error{
Dat: dat,
Err: fmt.Errorf("btrfsitem.UnmarshalItem({ItemType:%v}, dat): left over data: got %v bytes but only consumed %v",
key.ItemType, len(dat), n),
}
}
//nolint:forcetypeassert // items_gen.go has all types in keytype2gotype implement the Item interface.
- return retPtr.Elem().Interface().(Item)
+ return ptr.Interface().(Item)
}