Changes
7 changed files (+58/-17)
-
-
@@ -25,6 +25,7 @@pub fn build(b: *std.Build) void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); const freelog = b.option(bool, "freelog", "Enable logging memory releases") orelse false; const sood = sood: { const dep = b.dependency("sood", .{});
-
@@ -43,6 +44,9 @@ const dep = b.dependency("websocket", .{});break :websocket dep.module("websocket"); }; const options = b.addOptions(); options.addOption(bool, "freelog", freelog); // Zig module {
-
@@ -53,6 +57,8 @@mod.addImport("sood", sood); mod.addImport("moo", moo); mod.addImport("websocket", websocket); mod.addOptions("config", options); } // Static library for GLib
-
@@ -77,6 +83,7 @@lib.root_module.addImport("sood", sood); lib.root_module.addImport("moo", moo); lib.root_module.addImport("websocket", websocket); lib.root_module.addOptions("config", options); lib.linkLibC(); lib.linkSystemLibrary2("glib-2.0", .{ .preferred_link_mode = .dynamic });
-
@@ -139,6 +146,7 @@compile.root_module.addImport("sood", sood); compile.root_module.addImport("moo", moo); compile.root_module.addImport("websocket", websocket); compile.root_module.addOptions("config", options); } const universal_lib = universal: {
-
-
-
@@ -17,6 +17,7 @@const std = @import("std"); const Arc = @import("./Arc.zig"); const freelog = @import("./log.zig").freelog; const BrowseService = @import("./services/browse.zig").BrowseService; pub const Hierarchy = enum(c_int) {
-
@@ -95,7 +96,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(std.mem.span(self.prompt)); allocator.free(std.mem.span(self.action));
-
@@ -188,7 +189,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); if (self.prompt) |prompt| prompt.release(); if (self.item_key) |item_key| allocator.free(std.mem.span(item_key));
-
@@ -251,7 +252,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); self.item.release(); allocator.destroy(self.internal);
-
@@ -339,7 +340,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); const items = self.items_ptr[0..self.items_len]; for (items) |item| {
-
@@ -406,7 +407,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(std.mem.span(self.message)); allocator.destroy(self.internal);
-
@@ -464,7 +465,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(std.mem.span(self.message)); allocator.destroy(self.internal);
-
@@ -626,7 +627,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); switch (self.internal.payload) { .replace_item => |action| action.release(),
-
-
-
@@ -23,6 +23,7 @@ const Arc = @import("./Arc.zig");const browse = @import("./browse.zig"); const discovery = @import("./discovery.zig"); const extension = @import("./extension.zig").extension; const freelog = @import("./log.zig").freelog; const BrowseService = @import("./services/browse.zig").BrowseService; const ping = @import("./services/ping.zig"); const registry = @import("./services/registry.zig");
-
@@ -78,7 +79,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.destroy(self.internal); allocator.destroy(self);
-
@@ -136,7 +137,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(self.internal.token); allocator.destroy(self.internal);
-
@@ -288,7 +289,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); switch (self.internal.payload) { .connection_error => |ev| ev.release(),
-
@@ -458,7 +459,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); self.internal.deinit(); allocator.destroy(self.internal);
-
-
-
@@ -19,6 +19,7 @@const sood = @import("sood"); const Arc = @import("./Arc.zig"); const freelog = @import("./log.zig").freelog; const udp_dst = std.net.Address.initIp4( sood.discovery.multicast_ipv4_address,
-
@@ -99,7 +100,7 @@ .{ cname, @src().fn_name },)); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(self.internal.id); allocator.free(self.internal.name);
-
@@ -223,7 +224,8 @@ .{ cname, @src().fn_name },)); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); for (self.internal.servers) |server| { server.release(); }
-
-
core/src/log.zig (new)
-
@@ -0,0 +1,26 @@// Copyright 2025 Shota FUJI // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // SPDX-License-Identifier: Apache-2.0 const std = @import("std"); const config = @import("config"); /// Logs memory release event, if `freelog` option is active. pub fn freelog(ptr: anytype) void { if (config.freelog) { std.log.debug("Releasing {*}...", .{ptr}); } }
-
-
-
@@ -18,6 +18,7 @@ const std = @import("std");const Arc = @import("./Arc.zig"); const TransportService = @import("./services/transport.zig").TransportService; const freelog = @import("./log.zig").freelog; pub const NowPlaying = extern struct { const cname = "plac_transport_now_playing";
-
@@ -105,7 +106,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(std.mem.span(self.one_line_line1)); allocator.free(std.mem.span(self.two_line_line1));
-
@@ -178,7 +179,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); allocator.free(std.mem.span(self.zone_id)); allocator.destroy(self.internal);
-
@@ -287,7 +288,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); if (self.now_playing) |now_playing| { now_playing.release();
-
@@ -472,7 +473,7 @@ var self = ptr orelse @panic(std.fmt.comptimePrint("Received null pointer on {s}_{s}", .{ cname, @src().fn_name }), ); if (self.internal.arc.unref()) { std.log.debug("Releasing {*}...", .{self}); freelog(self); for (self.internal.added_zones) |zone| { zone.release();
-
-
-
@@ -30,12 +30,14 @@ pub fn build(b: *std.Build) !void {const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); const freelog = b.option(bool, "freelog", "Enable logging memory releases") orelse false; const compile_gschema = b.option(bool, "compile-gschema", "Compile gschema XML file for local run") orelse false; const core = core: { const dep = b.dependency("core", .{ .target = target, .optimize = optimize, .freelog = freelog, }); break :core dep.artifact("plac_glib");
-