From a56d6e31a8c7175d5dfcd99cf800ea215bfb9c46 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Sat, 3 Dec 2022 02:35:40 +0100 Subject: [PATCH] allocgate 2.0 --- generator/vulkan/c_parse.zig | 2 +- generator/vulkan/generator.zig | 2 +- generator/vulkan/parse.zig | 20 ++++++++++---------- generator/vulkan/render.zig | 2 +- generator/xml.zig | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/generator/vulkan/c_parse.zig b/generator/vulkan/c_parse.zig index 7414749..dd85b24 100644 --- a/generator/vulkan/c_parse.zig +++ b/generator/vulkan/c_parse.zig @@ -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; } diff --git a/generator/vulkan/generator.zig b/generator/vulkan/generator.zig index b29053b..398b7a1 100644 --- a/generator/vulkan/generator.zig +++ b/generator/vulkan/generator.zig @@ -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 { diff --git a/generator/vulkan/parse.zig b/generator/vulkan/parse.zig index 9b4b53a..d369444 100644 --- a/generator/vulkan/parse.zig +++ b/generator/vulkan/parse.zig @@ -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], }; } diff --git a/generator/vulkan/render.zig b/generator/vulkan/render.zig index 78cc8ca..09e8329 100644 --- a/generator/vulkan/render.zig +++ b/generator/vulkan/render.zig @@ -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 { diff --git a/generator/xml.zig b/generator/xml.zig index 412401c..5badf8e 100644 --- a/generator/xml.zig +++ b/generator/xml.zig @@ -481,8 +481,8 @@ fn parseElement(parser: *Parser, alloc: Allocator, comptime kind: ElementKind) ! const element = try alloc.create(Element); element.* = .{ .tag = try alloc.dupe(u8, tag), - .attributes = attributes.toOwnedSlice(), - .children = children.toOwnedSlice(), + .attributes = try attributes.toOwnedSlice(), + .children = try children.toOwnedSlice(), }; return element; }