| ... | @@ -915,25 +915,25 @@ pub const Coff = struct { | ... | @@ -915,25 +915,25 @@ pub const Coff = struct { |
| 915 | } | 915 | } |
| 916 | | 916 | |
| 917 | pub fn getCoffHeader(self: Coff) CoffHeader { | 917 | pub fn getCoffHeader(self: Coff) CoffHeader { |
| 918 | return @ptrCast(*align(1) CoffHeader, self.data[self.coff_header_offset..][0..@sizeOf(CoffHeader)]).*; | 918 | return @ptrCast(*align(1) const CoffHeader, self.data[self.coff_header_offset..][0..@sizeOf(CoffHeader)]).*; |
| 919 | } | 919 | } |
| 920 | | 920 | |
| 921 | pub fn getOptionalHeader(self: Coff) OptionalHeader { | 921 | pub fn getOptionalHeader(self: Coff) OptionalHeader { |
| 922 | assert(self.is_image); | 922 | assert(self.is_image); |
| 923 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); | 923 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); |
| 924 | return @ptrCast(*align(1) OptionalHeader, self.data[offset..][0..@sizeOf(OptionalHeader)]).*; | 924 | return @ptrCast(*align(1) const OptionalHeader, self.data[offset..][0..@sizeOf(OptionalHeader)]).*; |
| 925 | } | 925 | } |
| 926 | | 926 | |
| 927 | pub fn getOptionalHeader32(self: Coff) OptionalHeaderPE32 { | 927 | pub fn getOptionalHeader32(self: Coff) OptionalHeaderPE32 { |
| 928 | assert(self.is_image); | 928 | assert(self.is_image); |
| 929 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); | 929 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); |
| 930 | return @ptrCast(*align(1) OptionalHeaderPE32, self.data[offset..][0..@sizeOf(OptionalHeaderPE32)]).*; | 930 | return @ptrCast(*align(1) const OptionalHeaderPE32, self.data[offset..][0..@sizeOf(OptionalHeaderPE32)]).*; |
| 931 | } | 931 | } |
| 932 | | 932 | |
| 933 | pub fn getOptionalHeader64(self: Coff) OptionalHeaderPE64 { | 933 | pub fn getOptionalHeader64(self: Coff) OptionalHeaderPE64 { |
| 934 | assert(self.is_image); | 934 | assert(self.is_image); |
| 935 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); | 935 | const offset = self.coff_header_offset + @sizeOf(CoffHeader); |
| 936 | return @ptrCast(*align(1) OptionalHeaderPE64, self.data[offset..][0..@sizeOf(OptionalHeaderPE64)]).*; | 936 | return @ptrCast(*align(1) const OptionalHeaderPE64, self.data[offset..][0..@sizeOf(OptionalHeaderPE64)]).*; |
| 937 | } | 937 | } |
| 938 | | 938 | |
| 939 | pub fn getImageBase(self: Coff) u64 { | 939 | pub fn getImageBase(self: Coff) u64 { |
| ... | @@ -962,7 +962,7 @@ pub const Coff = struct { | ... | @@ -962,7 +962,7 @@ pub const Coff = struct { |
| 962 | else => unreachable, // We assume we have validated the header already | 962 | else => unreachable, // We assume we have validated the header already |
| 963 | }; | 963 | }; |
| 964 | const offset = self.coff_header_offset + @sizeOf(CoffHeader) + size; | 964 | const offset = self.coff_header_offset + @sizeOf(CoffHeader) + size; |
| 965 | return @ptrCast([*]align(1) ImageDataDirectory, self.data[offset..])[0..self.getNumberOfDataDirectories()]; | 965 | return @ptrCast([*]align(1) const ImageDataDirectory, self.data[offset..])[0..self.getNumberOfDataDirectories()]; |
| 966 | } | 966 | } |
| 967 | | 967 | |
| 968 | pub fn getSymtab(self: *const Coff) ?Symtab { | 968 | pub fn getSymtab(self: *const Coff) ?Symtab { |
| ... | @@ -980,13 +980,13 @@ pub const Coff = struct { | ... | @@ -980,13 +980,13 @@ pub const Coff = struct { |
| 980 | | 980 | |
| 981 | const offset = coff_header.pointer_to_symbol_table + Symbol.sizeOf() * coff_header.number_of_symbols; | 981 | const offset = coff_header.pointer_to_symbol_table + Symbol.sizeOf() * coff_header.number_of_symbols; |
| 982 | const size = mem.readIntLittle(u32, self.data[offset..][0..4]); | 982 | const size = mem.readIntLittle(u32, self.data[offset..][0..4]); |
| 983 | return .{ .buffer = self.data[offset..][0..size] }; | 983 | return Strtab{ .buffer = self.data[offset..][0..size] }; |
| 984 | } | 984 | } |
| 985 | | 985 | |
| 986 | pub fn getSectionHeaders(self: *const Coff) []align(1) const SectionHeader { | 986 | pub fn getSectionHeaders(self: *const Coff) []align(1) const SectionHeader { |
| 987 | const coff_header = self.getCoffHeader(); | 987 | const coff_header = self.getCoffHeader(); |
| 988 | const offset = self.coff_header_offset + @sizeOf(CoffHeader) + coff_header.size_of_optional_header; | 988 | const offset = self.coff_header_offset + @sizeOf(CoffHeader) + coff_header.size_of_optional_header; |
| 989 | return @ptrCast([*]align(1) SectionHeader, self.data.ptr + offset)[0..coff_header.number_of_sections]; | 989 | return @ptrCast([*]align(1) const SectionHeader, self.data.ptr + offset)[0..coff_header.number_of_sections]; |
| 990 | } | 990 | } |
| 991 | | 991 | |
| 992 | pub fn getSectionName(self: *const Coff, sect_hdr: *align(1) const SectionHeader) []const u8 { | 992 | pub fn getSectionName(self: *const Coff, sect_hdr: *align(1) const SectionHeader) []const u8 { |