| ... | @@ -1259,17 +1259,19 @@ pub const DeclGen = struct { | ... | @@ -1259,17 +1259,19 @@ pub const DeclGen = struct { |
| 1259 | const bw = buffer.writer(); | 1259 | const bw = buffer.writer(); |
| 1260 | | 1260 | |
| 1261 | const elem_type = t.elemType(); | 1261 | const elem_type = t.elemType(); |
| 1262 | const sentinel_bit = @boolToInt(t.sentinel() != null); | | |
| 1263 | const c_len = t.arrayLen() + sentinel_bit; | | |
| 1264 | | 1262 | |
| 1265 | try bw.writeAll("typedef "); | 1263 | try bw.writeAll("typedef "); |
| 1266 | try dg.renderType(bw, elem_type); | 1264 | try dg.renderType(bw, elem_type); |
| 1267 | | 1265 | |
| 1268 | const name_start = buffer.items.len + 1; | 1266 | const name_start = buffer.items.len + 1; |
| 1269 | try bw.print(" zig_A_{s}_{d}", .{ typeToCIdentifier(elem_type, dg.module), c_len }); | 1267 | try bw.print(" zig_A_{s}_{d}", .{ typeToCIdentifier(elem_type, dg.module), t.arrayLen() }); |
| | 1268 | if (t.sentinel()) |s| { |
| | 1269 | try bw.writeAll("_s_"); |
| | 1270 | try dg.renderValue(bw, elem_type, s, .Identifier); |
| | 1271 | } |
| 1270 | const name_end = buffer.items.len; | 1272 | const name_end = buffer.items.len; |
| 1271 | | 1273 | |
| 1272 | try bw.print("[{d}];\n", .{c_len}); | 1274 | try bw.print("[{d}];\n", .{t.arrayLenIncludingSentinel()}); |
| 1273 | | 1275 | |
| 1274 | const rendered = buffer.toOwnedSlice(); | 1276 | const rendered = buffer.toOwnedSlice(); |
| 1275 | errdefer dg.typedefs.allocator.free(rendered); | 1277 | errdefer dg.typedefs.allocator.free(rendered); |