summaryrefslogtreecommitdiff
path: root/src/core/unit-serialize.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-06-08 16:30:44 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-06-10 14:17:58 +0200
commit1085c0eb692623a4398df80a45f99ea2d8031bf7 (patch)
treed9ec671b851d88a37415923fe64e1f450c2839e4 /src/core/unit-serialize.c
parentfe50aae5e15eb267b15a37c0c00a48b29fed8f11 (diff)
downloadsystemd-1085c0eb692623a4398df80a45f99ea2d8031bf7.tar.gz
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.
Diffstat (limited to 'src/core/unit-serialize.c')
-rw-r--r--src/core/unit-serialize.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/core/unit-serialize.c b/src/core/unit-serialize.c
index f6305d879a..de71201fdb 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);