From 1085c0eb692623a4398df80a45f99ea2d8031bf7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 8 Jun 2021 16:30:44 +0200 Subject: [PATCH] core/serialization: drop misleadingly-named unit_can_serialize() All unit types can be serialized. This function was really checking whether the unit type has custom serialization/deserialization code. But we don't need a function for this. Also, the check that both .serialize() and .deserialize_item() are defined is better written as an assert. Not we have a function which would skip serialization/deserializaton for the unit if we forgot to set either of the fields. --- src/core/unit-serialize.c | 6 ++++-- src/core/unit.c | 6 ------ src/core/unit.h | 2 -- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/core/unit-serialize.c b/src/core/unit-serialize.c index f6305d879a3..de71201fdb2 100644 --- a/src/core/unit-serialize.c +++ b/src/core/unit-serialize.c @@ -108,7 +108,9 @@ int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool switching_root) { fputs(u->id, f); fputc('\n', f); - if (unit_can_serialize(u)) { + assert(!!UNIT_VTABLE(u)->serialize == !!UNIT_VTABLE(u)->deserialize_item); + + if (UNIT_VTABLE(u)->serialize) { r = UNIT_VTABLE(u)->serialize(u, f, fds); if (r < 0) return r; @@ -506,7 +508,7 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { /* Returns positive if key was handled by the call */ continue; - if (unit_can_serialize(u)) { + if (UNIT_VTABLE(u)->deserialize_item) { r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds); if (r < 0) log_unit_warning(u, "Failed to deserialize unit parameter '%s', ignoring.", l); diff --git a/src/core/unit.c b/src/core/unit.c index de407d20a88..5f4739b32a3 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -3488,12 +3488,6 @@ void unit_unwatch_bus_name(Unit *u, const char *name) { u->get_name_owner_slot = sd_bus_slot_unref(u->get_name_owner_slot); } -bool unit_can_serialize(Unit *u) { - assert(u); - - return UNIT_VTABLE(u)->serialize && UNIT_VTABLE(u)->deserialize_item; -} - int unit_add_node_dependency(Unit *u, const char *what, UnitDependency dep, UnitDependencyMask mask) { _cleanup_free_ char *e = NULL; Unit *device; diff --git a/src/core/unit.h b/src/core/unit.h index 52feb3693b0..3b302e7e206 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -814,8 +814,6 @@ char *unit_dbus_path_invocation_id(Unit *u); int unit_load_related_unit(Unit *u, const char *type, Unit **_found); -bool unit_can_serialize(Unit *u) _pure_; - int unit_add_node_dependency(Unit *u, const char *what, UnitDependency d, UnitDependencyMask mask); int unit_add_blockdev_dependency(Unit *u, const char *what, UnitDependencyMask mask); -- 2.47.3