diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-06-08 16:30:44 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-06-10 14:17:58 +0200 |
commit | 1085c0eb692623a4398df80a45f99ea2d8031bf7 (patch) | |
tree | d9ec671b851d88a37415923fe64e1f450c2839e4 /src/core/unit-serialize.c | |
parent | fe50aae5e15eb267b15a37c0c00a48b29fed8f11 (diff) | |
download | systemd-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.c | 6 |
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); |