Merge pull request #4970 from B2krobbery/fix-group-module-leak

fix(bar): ensure exception safety for group module allocation
This commit is contained in:
Alexis Rouillard
2026-04-07 12:39:42 +02:00
committed by GitHub
+5 -3
View File
@@ -545,9 +545,11 @@ void waybar::Bar::getModules(const Factory& factory, const std::string& pos,
if (group_config["modules"].isNull()) { if (group_config["modules"].isNull()) {
spdlog::warn("Group definition '{}' has not been found, group will be hidden", ref); spdlog::warn("Group definition '{}' has not been found, group will be hidden", ref);
} }
auto* group_module = new waybar::Group(id_name, class_name, group_config, vertical); auto group_module = std::make_unique<waybar::Group>(
getModules(factory, ref, group_module); id_name, class_name, group_config, vertical);
module = group_module;
getModules(factory, ref, group_module.get());
module = group_module.release();
} else { } else {
module = factory.makeModule(ref, pos); module = factory.makeModule(ref, pos);
} }