| ... | ... | @@ -1673,6 +1673,7 @@ fn deleteDeclExports(self: *Module, decl: *Decl) void { |
| 1673 | 1673 | entry.value.destroy(self.gpa); |
| 1674 | 1674 | } |
| 1675 | 1675 | _ = self.symbol_exports.remove(exp.options.name); |
| 1676 | self.gpa.free(exp.options.name); |
| 1676 | 1677 | self.gpa.destroy(exp); |
| 1677 | 1678 | } |
| 1678 | 1679 | self.gpa.free(kv.value); |
| ... | ... | @@ -1773,7 +1774,7 @@ pub fn resolveDefinedValue(self: *Module, scope: *Scope, base: *Inst) !?Value { |
| 1773 | 1774 | return null; |
| 1774 | 1775 | } |
| 1775 | 1776 | |
| 1776 | | pub fn analyzeExport(self: *Module, scope: *Scope, src: usize, symbol_name: []const u8, exported_decl: *Decl) !void { |
| 1777 | pub fn analyzeExport(self: *Module, scope: *Scope, src: usize, borrowed_symbol_name: []const u8, exported_decl: *Decl) !void { |
| 1777 | 1778 | try self.ensureDeclAnalyzed(exported_decl); |
| 1778 | 1779 | const typed_value = exported_decl.typed_value.most_recent.typed_value; |
| 1779 | 1780 | switch (typed_value.ty.zigTypeTag()) { |
| ... | ... | @@ -1787,6 +1788,9 @@ pub fn analyzeExport(self: *Module, scope: *Scope, src: usize, symbol_name: []co |
| 1787 | 1788 | const new_export = try self.gpa.create(Export); |
| 1788 | 1789 | errdefer self.gpa.destroy(new_export); |
| 1789 | 1790 | |
| 1791 | const symbol_name = try self.gpa.dupe(u8, borrowed_symbol_name); |
| 1792 | errdefer self.gpa.free(symbol_name); |
| 1793 | |
| 1790 | 1794 | const owner_decl = scope.decl().?; |
| 1791 | 1795 | |
| 1792 | 1796 | new_export.* = .{ |
| ... | ... | @@ -1799,7 +1803,7 @@ pub fn analyzeExport(self: *Module, scope: *Scope, src: usize, symbol_name: []co |
| 1799 | 1803 | }; |
| 1800 | 1804 | |
| 1801 | 1805 | // Add to export_owners table. |
| 1802 | | const eo_gop = self.export_owners.getOrPut(self.gpa, owner_decl) catch unreachable; |
| 1806 | const eo_gop = self.export_owners.getOrPutAssumeCapacity(owner_decl); |
| 1803 | 1807 | if (!eo_gop.found_existing) { |
| 1804 | 1808 | eo_gop.entry.value = &[0]*Export{}; |
| 1805 | 1809 | } |
| ... | ... | @@ -1808,7 +1812,7 @@ pub fn analyzeExport(self: *Module, scope: *Scope, src: usize, symbol_name: []co |
| 1808 | 1812 | errdefer eo_gop.entry.value = self.gpa.shrink(eo_gop.entry.value, eo_gop.entry.value.len - 1); |
| 1809 | 1813 | |
| 1810 | 1814 | // Add to exported_decl table. |
| 1811 | | const de_gop = self.decl_exports.getOrPut(self.gpa, exported_decl) catch unreachable; |
| 1815 | const de_gop = self.decl_exports.getOrPutAssumeCapacity(exported_decl); |
| 1812 | 1816 | if (!de_gop.found_existing) { |
| 1813 | 1817 | de_gop.entry.value = &[0]*Export{}; |
| 1814 | 1818 | } |