diff --git a/src/dom/document.zig b/src/dom/document.zig index 16350634..0c76ae58 100644 --- a/src/dom/document.zig +++ b/src/dom/document.zig @@ -210,8 +210,8 @@ pub const Document = struct { // TODO netsurf doesn't handle query selectors. We have to implement a // solution by ourselves. // We handle only * and single id selector like `#foo`. - pub fn _querySelectorAll(self: *parser.Document, alloc: std.mem.Allocator, selectors: []const u8) !*NodeList { - const list = try NodeList.init(alloc); + pub fn _querySelectorAll(self: *parser.Document, alloc: std.mem.Allocator, selectors: []const u8) !NodeList { + var list = try NodeList.init(); errdefer list.deinit(alloc); if (selectors.len == 0) return list; diff --git a/src/dom/element.zig b/src/dom/element.zig index ef483e27..5827604a 100644 --- a/src/dom/element.zig +++ b/src/dom/element.zig @@ -229,8 +229,8 @@ pub const Element = struct { // TODO netsurf doesn't handle query selectors. We have to implement a // solution by ourselves. // We handle only * and single id selector like `#foo`. - pub fn _querySelectorAll(self: *parser.Element, alloc: std.mem.Allocator, selectors: []const u8) !*NodeList { - const list = try NodeList.init(alloc); + pub fn _querySelectorAll(self: *parser.Element, alloc: std.mem.Allocator, selectors: []const u8) !NodeList { + var list = try NodeList.init(); errdefer list.deinit(alloc); if (selectors.len == 0) return list; diff --git a/src/dom/node.zig b/src/dom/node.zig index 540c6b26..5bbc8849 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -194,8 +194,8 @@ pub const Node = struct { return try parser.nodeHasChildNodes(self); } - pub fn get_childNodes(self: *parser.Node, alloc: std.mem.Allocator) !*NodeList { - const list = try NodeList.init(alloc); + pub fn get_childNodes(self: *parser.Node, alloc: std.mem.Allocator) !NodeList { + var list = try NodeList.init(); errdefer list.deinit(alloc); var n = try parser.nodeFirstChild(self) orelse return list; diff --git a/src/dom/nodelist.zig b/src/dom/nodelist.zig index 269f2e4a..fd3419df 100644 --- a/src/dom/nodelist.zig +++ b/src/dom/nodelist.zig @@ -22,19 +22,15 @@ pub const NodeList = struct { nodes: NodesArrayList, - pub fn init(alloc: std.mem.Allocator) !*NodeList { - const list = try alloc.create(NodeList); - list.* = NodeList{ + pub fn init() !NodeList { + return NodeList{ .nodes = NodesArrayList{}, }; - - return list; } pub fn deinit(self: *NodeList, alloc: std.mem.Allocator) void { // TODO unref all nodes self.nodes.deinit(alloc); - alloc.destroy(self); } pub fn append(self: *NodeList, alloc: std.mem.Allocator, node: *parser.Node) !void {