allocgate 2.0

This commit is contained in:
Robin Voetter
2022-12-03 02:35:40 +01:00
parent be59386118
commit a56d6e31a8
5 changed files with 15 additions and 15 deletions

View File

@@ -466,7 +466,7 @@ fn parseFnPtrSuffix(allocator: Allocator, xctok: *XmlCTokenizer, return_type: Ty
}
_ = try xctok.nextNoEof();
command_ptr.decl_type.command_ptr.params = params.toOwnedSlice();
command_ptr.decl_type.command_ptr.params = try params.toOwnedSlice();
return command_ptr;
}

View File

@@ -72,7 +72,7 @@ const EnumFieldMerger = struct {
// Existing base_enum.fields was allocated by `self.arena`, so
// it gets cleaned up whenever that is deinited.
base_enum.fields = self.arena.shrink(new_fields, i);
base_enum.fields = new_fields[0..i];
}
fn merge(self: *EnumFieldMerger) !void {

View File

@@ -48,7 +48,7 @@ fn parseDeclarations(allocator: Allocator, root: *xml.Element) ![]registry.Decla
count += try parseTypes(allocator, decls, types_elem);
count += try parseEnums(allocator, decls[count..], root);
count += try parseCommands(allocator, decls[count..], commands_elem);
return allocator.shrink(decls, count);
return decls[0..count];
}
fn parseTypes(allocator: Allocator, out: []registry.Declaration, types_elem: *xml.Element) !usize {
@@ -202,7 +202,7 @@ fn parseContainer(allocator: Allocator, ty: *xml.Element, is_union: bool) !regis
i += 1;
}
members = allocator.shrink(members, i);
members = members[0..i];
var maybe_extends: ?[][]const u8 = null;
if (ty.getAttribute("structextends")) |extends| {
@@ -370,7 +370,7 @@ fn parseEnumFields(allocator: Allocator, elem: *xml.Element) !registry.Enum {
}
return registry.Enum{
.fields = allocator.shrink(fields, i),
.fields = fields[0..i],
.bitwidth = bitwidth,
.is_bitmask = is_bitmask,
};
@@ -483,7 +483,7 @@ fn parseCommand(allocator: Allocator, elem: *xml.Element) !registry.Declaration
else
&[_][]const u8{};
params = allocator.shrink(params, i);
params = params[0..i];
it = elem.findChildrenByTag("param");
for (params) |*param| {
@@ -552,7 +552,7 @@ fn parseApiConstants(allocator: Allocator, root: *xml.Element) ![]registry.ApiCo
}
i += try parseDefines(types, constants[i..]);
return allocator.shrink(constants, i);
return constants[0..i];
}
fn parseDefines(types: *xml.Element, out: []registry.ApiConstant) !usize {
@@ -598,7 +598,7 @@ fn parseTags(allocator: Allocator, root: *xml.Element) ![]registry.Tag {
i += 1;
}
return allocator.shrink(tags, i);
return tags[0..i];
}
fn parseFeatures(allocator: Allocator, root: *xml.Element) ![]registry.Feature {
@@ -635,7 +635,7 @@ fn parseFeature(allocator: Allocator, feature: *xml.Element) !registry.Feature {
return registry.Feature{
.name = name,
.level = feature_level,
.requires = allocator.shrink(requires, i),
.requires = requires[0..i],
};
}
@@ -738,7 +738,7 @@ fn parseRequire(allocator: Allocator, require: *xml.Element, extnumber: ?u31) !r
};
return registry.Require{
.extends = allocator.shrink(extends, i_extends),
.extends = extends[0..i_extends],
.types = types,
.commands = commands,
.required_feature_level = required_feature_level,
@@ -764,7 +764,7 @@ fn parseExtensions(allocator: Allocator, root: *xml.Element) ![]registry.Extensi
i += 1;
}
return allocator.shrink(extensions, i);
return extensions[0..i];
}
fn findExtVersion(extension: *xml.Element) !u32 {
@@ -844,7 +844,7 @@ fn parseExtension(allocator: Allocator, extension: *xml.Element) !registry.Exten
.promoted_to = promoted_to,
.platform = platform,
.required_feature_level = requires_core,
.requires = allocator.shrink(requires, i),
.requires = requires[0..i],
};
}

View File

@@ -1305,7 +1305,7 @@ fn Renderer(comptime WriterType: type) type {
}
}
return returns.toOwnedSlice();
return try returns.toOwnedSlice();
}
fn renderReturnStructName(self: *Self, command_name: []const u8) !void {