]> gitweb.ps.run Git - ziggit/blobdiff - git.zig
remove unneeded free's
[ziggit] / git.zig
diff --git a/git.zig b/git.zig
index 27081a2f1184e81650160cebea64a36666c168a5..07be390b626ccf4bf1ba4c35d58c4a29e2e87a8e 100644 (file)
--- a/git.zig
+++ b/git.zig
@@ -322,11 +322,9 @@ const PackFile = struct {
 
         try self.pckFile.seekBy(-offset);
         const baseObject = try self.readObject(pckReader);
-        defer self.alloc.free(baseObject.data);
 
         try self.pckFile.seekTo(pos);
         const deltaData = try decompress(self.alloc, pckReader);
-        defer self.alloc.free(deltaData);
 
         const objectData = try applyDelta(self.alloc, baseObject.data, deltaData);
         return Object.init(baseObject.kind, objectData);
@@ -390,7 +388,6 @@ const Repo = struct {
     pub fn getHead(self: *Repo) !Id {
         // read file HEAD
         const head = try self.dir.readFileAlloc(self.alloc, "HEAD", 1024);
-        defer self.alloc.free(head);
 
         // read file pointed at by HEAD
         const headPath = head[5 .. head.len - 1];
@@ -410,7 +407,10 @@ const Repo = struct {
 };
 
 test "print HEAD" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
@@ -420,7 +420,10 @@ test "print HEAD" {
 }
 
 test "parse idx" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
@@ -431,29 +434,31 @@ test "parse idx" {
 }
 
 test "get object" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
     const head = try repo.getHead();
 
     if (try repo.getObject(head)) |o| {
-        defer alloc.free(o.data);
-
         std.debug.print("object({}): {s}\n", .{ o.kind, o.data });
     }
 }
 
 test "parse commit" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
     const head = try repo.getHead();
 
     if (try repo.getObject(head)) |o| {
-        defer alloc.free(o.data);
-
         switch (try o.parse(alloc)) {
             .c => |c| {
                 std.debug.print("commit:\n  tree: {x}\n  parent: {x}\n  author: {s}\n  committer: {s}\n  message: {s}\n", .{ c.tree, c.parent, c.author, c.committer, c.message });
@@ -464,25 +469,27 @@ test "parse commit" {
 }
 
 test "get tree" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
     if (try repo.getObject(0xceb2b2c62d6f8f3686dcacecd5be931839b02c77)) |o| {
-        defer alloc.free(o.data);
-
-        // std.debug.print("tree({}): {any}\n", .{ o.kind, o.data });
+        std.debug.print("tree({}): {any}\n", .{ o.kind, o.data });
     }
 }
 
 test "parse tree" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
     if (try repo.getObject(0xceb2b2c62d6f8f3686dcacecd5be931839b02c77)) |o| {
-        defer alloc.free(o.data);
-
         switch (try o.parse(alloc)) {
             .t => |t| {
                 defer t.deinit();
@@ -496,7 +503,10 @@ test "parse tree" {
 }
 
 test "list commits" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
@@ -506,8 +516,6 @@ test "list commits" {
 
     for (0..3) |_| {
         if (try repo.getObject(id)) |o| {
-            defer alloc.free(o.data);
-
             switch (try o.parse(alloc)) {
                 .c => |c| {
                     std.debug.print("commit {x}:\n  tree: {x}\n  parent: {x}\n  author: {s}\n  committer: {s}\n  message: {s}\n", .{ id, c.tree, c.parent, c.author, c.committer, c.message });
@@ -520,20 +528,19 @@ test "list commits" {
 }
 
 test "list blobs" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
     if (try repo.getObject(0xceb2b2c62d6f8f3686dcacecd5be931839b02c77)) |o| {
-        defer alloc.free(o.data);
-
         switch (try o.parse(alloc)) {
             .t => |t| {
                 defer t.deinit();
                 for (t.items) |treeEntry| {
                     if (try repo.getObject(treeEntry.id)) |bo| {
-                        defer alloc.free(bo.data);
-
                         if (treeEntry.permissions.len == 6) {
                             std.debug.print("{s}: [{x} {}]{s}\n", .{ treeEntry.name, treeEntry.id, bo.data.len, bo.data[0..50] });
                         } else {
@@ -548,7 +555,10 @@ test "list blobs" {
 }
 
 test "basic frontend" {
-    const alloc = std.testing.allocator;
+    var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
+    defer arena.deinit();
+    const alloc = arena.allocator();
+
     var repo = try Repo.open(alloc, "../imgui/.git");
     defer repo.close();
 
@@ -558,8 +568,6 @@ test "basic frontend" {
 
     for (0..3) |_| {
         if (try repo.getObject(id)) |o| {
-            defer alloc.free(o.data);
-
             switch (try o.parse(alloc)) {
                 .c => |c| {
                     std.debug.print("commit {x}:\n  tree: {x}\n  parent: {x}\n  author: {s}\n  committer: {s}\n  message: {s}\n", .{ id, c.tree, c.parent, c.author, c.committer, c.message });