| ... | @@ -96,19 +96,18 @@ pub fn TrailerFlags(comptime Fields: type) type { | ... | @@ -96,19 +96,18 @@ pub fn TrailerFlags(comptime Fields: type) type { |
| 96 | pub fn ptr(self: Self, p: [*]align(@alignOf(Fields)) u8, comptime field: FieldEnum) *Field(field) { | 96 | pub fn ptr(self: Self, p: [*]align(@alignOf(Fields)) u8, comptime field: FieldEnum) *Field(field) { |
| 97 | if (@sizeOf(Field(field)) == 0) | 97 | if (@sizeOf(Field(field)) == 0) |
| 98 | return undefined; | 98 | return undefined; |
| 99 | const off = self.offset(p, field); | 99 | const off = self.offset(field); |
| 100 | return @ptrCast(*Field(field), @alignCast(@alignOf(Field(field)), p + off)); | 100 | return @ptrCast(*Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 101 | } | 101 | } |
| 102 | | 102 | |
| 103 | pub fn ptrConst(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) *const Field(field) { | 103 | pub fn ptrConst(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) *const Field(field) { |
| 104 | if (@sizeOf(Field(field)) == 0) | 104 | if (@sizeOf(Field(field)) == 0) |
| 105 | return undefined; | 105 | return undefined; |
| 106 | const off = self.offset(p, field); | 106 | const off = self.offset(field); |
| 107 | return @ptrCast(*const Field(field), @alignCast(@alignOf(Field(field)), p + off)); | 107 | return @ptrCast(*const Field(field), @alignCast(@alignOf(Field(field)), p + off)); |
| 108 | } | 108 | } |
| 109 | | 109 | |
| 110 | pub fn offset(self: Self, p: [*]align(@alignOf(Fields)) const u8, comptime field: FieldEnum) usize { | 110 | pub fn offset(self: Self, comptime field: FieldEnum) usize { |
| 111 | _ = p; | | |
| 112 | var off: usize = 0; | 111 | var off: usize = 0; |
| 113 | inline for (@typeInfo(Fields).Struct.fields) |field_info, i| { | 112 | inline for (@typeInfo(Fields).Struct.fields) |field_info, i| { |
| 114 | const active = (self.bits & (1 << i)) != 0; | 113 | const active = (self.bits & (1 << i)) != 0; |