deallocation fix

This commit is contained in:
aprilnightk 2025-09-06 21:09:17 +03:00
parent 656c10d4ef
commit cba71f4a60

View file

@ -16,6 +16,8 @@ const prnt = utility.prnt;
pub const SoundNode = struct {
allocator: Allocator,
name: []const u8 = "soundnode",
location: Pnt = Pnt{.x = 0, .y = 0, .z = 0},
@ -26,23 +28,28 @@ pub const SoundNode = struct {
pub fn init(allocator: Allocator, name: []const u8) !SoundNode {
var air_in = ArrayList(*SoundNode).init(allocator);
defer air_in.deinit();
var wire_in = ArrayList(*SoundNode).init(allocator);
defer wire_in.deinit();
var freqmap = AutoHashMap(u64, f16).init(allocator);
defer freqmap.deinit();
const air_in = ArrayList(*SoundNode).init(allocator);
const wire_in = ArrayList(*SoundNode).init(allocator);
const freqmap = AutoHashMap(u64, f16).init(allocator);
return .{
.allocator = allocator,
.name = name,
.air_in = air_in,
.wire_in = wire_in,
.name = name,
.freqmap = freqmap,
};
}
pub fn deinit(self: *SoundNode) void {
self.air_in.deinit();
self.wire_in.deinit();
self.freqmap.deinit();
}
};
pub fn singleSineTick(st: *SoundSettings, freq: f16, t: u64) f64 {
@ -56,7 +63,11 @@ pub fn main() !void {
const allocator = gpa.allocator();
var sn1: SoundNode = try SoundNode.init(allocator, "left_sink");
defer sn1.deinit();
var sn2: SoundNode = try SoundNode.init(allocator, "right_sink");
defer sn2.deinit();
sn2.location.x = -5;
sn1.location.x = 4;
try sn1.air_in.append(&sn2);