aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2026-04-13 22:03:13 +0000
committers-ol <s+removethis@s-ol.nu>2026-04-13 22:03:13 +0000
commitc34acd9b1da2294e3cbdedd95d6b6608809a084b (patch)
tree2216bae06c2e7495ecfad33c433a5827fa8624af /src
parentadd some tests (diff)
downloadglsl-view-c34acd9b1da2294e3cbdedd95d6b6608809a084b.tar.gz
glsl-view-c34acd9b1da2294e3cbdedd95d6b6608809a084b.zip
fix some memory leaks
Diffstat (limited to 'src')
-rw-r--r--src/control.zig10
-rw-r--r--src/ffmpeg.zig2
-rw-r--r--src/gl.zig6
-rw-r--r--src/main.zig2
4 files changed, 10 insertions, 10 deletions
diff --git a/src/control.zig b/src/control.zig
index e52129e..98fa5a7 100644
--- a/src/control.zig
+++ b/src/control.zig
@@ -166,7 +166,7 @@ pub const ControlServer = struct {
if (remove) {
std.debug.print("delete source {s}\n", .{entry.key_ptr.*});
- entry.value_ptr.*.deinit(self.allocator);
+ entry.value_ptr.*.deinit(self.cache.allocator);
names[i] = entry.key_ptr.*;
i += 1;
}
@@ -174,19 +174,19 @@ pub const ControlServer = struct {
for (names[0..i]) |name| {
_ = self.sources.remove(name);
- self.allocator.free(name);
+ self.cache.allocator.free(name);
}
while (c.lo_server_recv_noblock(self.server, 0) > 0) {}
}
- pub fn destroy(self: *ControlServer) void {
+ pub fn deinit(self: *ControlServer) void {
c.lo_server_free(self.server);
var tit = self.sources.iterator();
while (tit.next()) |entry| {
- entry.value_ptr.*.deinit(self.allocator);
- self.allocator.free(entry.key_ptr.*);
+ entry.value_ptr.*.deinit(self.cache.allocator);
+ self.cache.allocator.free(entry.key_ptr.*);
}
self.sources.deinit();
}
diff --git a/src/ffmpeg.zig b/src/ffmpeg.zig
index af742b2..0345235 100644
--- a/src/ffmpeg.zig
+++ b/src/ffmpeg.zig
@@ -346,7 +346,7 @@ pub const VideoSource = struct {
try @import("hap.zig").HAPDecoder.init(allocator, format, video_stream)
else
try AVDecoder.init(allocator, format, video_stream);
- errdefer decoder.deinit(allocator);
+ defer decoder.deinit(allocator);
self.* = .{
.source = .{
diff --git a/src/gl.zig b/src/gl.zig
index f8d3bff..6fa6767 100644
--- a/src/gl.zig
+++ b/src/gl.zig
@@ -1107,12 +1107,12 @@ pub const UniformCache = struct {
pub fn get(self: *UniformCache, name: []const u8) !?*CachedUniform {
if (!self.uniforms.contains(name)) {
- const cloned_name = try self.allocator.dupe(u8, name);
- errdefer self.allocator.free(cloned_name);
-
var uniform = CachedUniform.init(self.allocator, self.shader.*, name) catch return null;
errdefer uniform.deinit(self.allocator);
+ const cloned_name = try self.allocator.dupe(u8, name);
+ errdefer self.allocator.free(cloned_name);
+
try self.uniforms.put(cloned_name, uniform);
}
diff --git a/src/main.zig b/src/main.zig
index f64c385..9b09945 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -116,7 +116,7 @@ pub fn main() !void {
defer cache.deinit();
const control = try ctrl.ControlServer.init(cfg_allocator, progress, &cache, &config, &constants);
- defer control.destroy();
+ defer control.deinit();
var loops: u8 = 0;